Как анимировать переход цвета в представлении с помощью пользовательской формы фона - PullRequest
0 голосов
/ 12 апреля 2019

Итак, я использую RecyclerView для отображения некоторых видов.Пользователь может держать представление, чтобы выбрать его.Когда выбран, вид должен изменить свой цвет на зеленый.Я использую ValueAnimator, чтобы сделать плавный переход.Это было легко сделать с помощью view.setBackgroundColor.Но сейчас я использую пользовательскую форму.поэтому этот метод больше не работает.

Я попытался установить цвет, используя setColorFilter, приведение к GardientDrawable и вызов setColor.Я также попробовал setColorFilter, попытался привести к ColorDrawable и ShapeDrawable (не удалось).Это мой текущий код.

            val color1 = main.getColorFromAttr(if (cheked) R.attr.colorAppRowBackground else R.attr.colorAppRowBackground)//holder.view.solidColor
            val color2 = main.getColorFromAttr(if (!checked) R.attr.colorAppRowBackground else R.attr.colorAppRowBackground)
            ValueAnimator.ofObject(ArgbEvaluator(), color1, color2).apply {
                duration = 200
                addUpdateListener { valueAnimator -> (holder.view.background as GradientDrawable).setColor(valueAnimator.animatedValue as Int) }
            }.start()
        }

Я ожидаю, что цвет изменится на зеленый, но он ничего не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...