Android 为对象动画师设置百分比
Android set percentages for object animator
我正在试用对象动画师,我对如何将值设置为百分比感到困惑。
使用旧动画我可以做到:
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"/>
不过好像没什么效果
无法通过 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()
我正在试用对象动画师,我对如何将值设置为百分比感到困惑。
使用旧动画我可以做到:
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"/>
不过好像没什么效果
无法通过 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()