Android为对象动画师设置百分比

时间:2018-09-14 06:11:52

标签: android android-animation

我正在尝试对象动画制作器,并且对于如何将值设置为百分比感到困惑。

使用旧动画我可以做:

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 个答案:

答案 0 :(得分:0)

不可能通过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()