代码之家  ›  专栏  ›  技术社区  ›  Rgfvfk Iff

Android为object animator设置百分比

  •  -1
  • Rgfvfk Iff  · 技术社区  · 7 年前

    使用旧动画,我可以:

    inside anim/translate.xml
    <translate
        android:fromXDelta="0"
        android:toXDelta="80%p"
        android:duration="500"/>
    

    // inside animator/translate.xml
    <objectAnimator
        android:propertyName="TranslationX"
        android:valueFrom="0"
        android:valueTo="80%p"
        android:duration="500"/>
    

    我得到了错误 java.lang.NumberFormatException: For input string: "80%p"

    我试着看着 this answer 加上这个

    <objectAnimator
        android:propertyName="xFraction"
        android:valueType="floatType"
        android:valueFrom="0"
        android:valueTo="0.8"
        android:duration="500"/>
    

    但似乎没有效果。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rgfvfk Iff    7 年前

    不可能通过xml实现,因此需要通过编程更改和设置百分比

    val display = windowManager.defaultDisplay
    val size = Point()
    display.getSize(size)
    val displayWidth = size.x * 0.8f
    
    val objectAnimator = ObjectAnimator.ofFloat(myView, "translationX", 0f, displayWidth)
    objectAnimator.duration = 500
    objectAnimator.start()