Android - с набором анимации - PullRequest
       25

Android - с набором анимации

0 голосов
/ 12 апреля 2019

Я пытаюсь сделать две анимации в одном и том же виде: одну для backgroundTint и одну для масштаба ... Использование ObjectAnimator.ofPropertyValuesHolder имеет смысл, так как вы можете просто перечислить propertyValueHolder, который представляет анимацию.У меня есть что-то вроде этого:

val enabledColor = context.getColor(R.color.colorAccent)
val disabledColor = context.getColor(R.color.colorDisabled)       

val anim = ObjectAnimator.ofPropertyValuesHolder(imgBackground,
        PropertyValuesHolder.ofFloat(View.SCALE_X, 1F, 1.2F),
        PropertyValuesHolder.ofFloat(View.SCALE_Y, 1F, 1.2F),
        PropertyValuesHolder.ofInt("colorFilter", enabledColor, disabledColor)
)

Однако colorFilter (который является фоновым оттенком) не анимируется должным образом, поскольку он анимирует Int ... Когда анимация воспроизводится, background_tint заканчиваетсяместо: желтый, зеленый и т. д. Я хотел бы сохранить этот стиль - используя ObjectAnimator для группировки всех анимаций.

Ранее у меня было:

    ObjectAnimator.ofArgb(imgBackground, colorAnimProperty, disabledColor, enabledColor)
    val scaleUpAnim = ObjectAnimator.ofPropertyValuesHolder(imgBackground,
        PropertyValuesHolder.ofFloat(View.SCALE_X, 1F, 1.2F),
        PropertyValuesHolder.ofFloat(View.SCALE_Y, 1F, 1.2F)
    )

Что и помогает,но это неудобно, так как мне нужен AnimationSet для их объединения ...

Как написать анимацию background_tint, используя PropertyValuesHolder?

1 Ответ

0 голосов
/ 13 апреля 2019

Обнаружено, что мы можем снабдить PropertyValuesHolder функцией Evaluator, которая выполняет расчеты за нас.Удобно, что есть ArgsEvaluator.Следовательно, это выглядит так:

animEnable = ObjectAnimator.ofPropertyValuesHolder(imgBackground,
        PropertyValuesHolder.ofFloat(View.SCALE_X, 1F, 1.2F),
        PropertyValuesHolder.ofFloat(View.SCALE_Y, 1F, 1.2F),
        PropertyValuesHolder.ofObject("colorFilter", ArgbEvaluator(), disabledColor, enabledColor))
...