Android установил проценты для аниматора объектов - PullRequest
0 голосов
/ 14 сентября 2018

Я испытываю объектные аниматоры, и меня смущает, как я могу установить значения в процентах.

Используя старую анимацию, я могу просто сделать:

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

, но когда яdo:

// 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"

Я попытался посмотреть этот ответ и добавил это

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

, но этокажется, не имеет никакого эффекта.

1 Ответ

0 голосов
/ 17 сентября 2018

Невозможно сделать это через 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()
...