我正在尝试对象动画制作器,并且对于如何将值设置为百分比感到困惑。
使用旧动画我可以做:
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"/>
但这似乎没有效果。
答案 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()