如何在具有自定义背景形状的视图上为颜色过渡设置动画

时间:2019-04-12 10:58:04

标签: android background shapes

因此,我正在使用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()
        }

我希望颜色会变为绿色,但是它什么也没做。

0 个答案:

没有答案