淡化TextView背景颜色的过渡

时间:2014-01-01 22:41:08

标签: android textview

我有TextView根据SeekBar给出的值更改颜色:

if ((inOne >= 70 && inOne <= 90) && (inTwo >= 40 && inTwo <= 60)) {
            tvRes.setText("LOW");
            tvRes.setBackgroundColor(Color.parseColor("#73539E"));
            rlO.setBackgroundColor(Color.parseColor("#9973539E"));
        }
        if ((inOne >= 70 && inOne <= 90) && (inTwo >= 61 && inTwo <= 80)) {
            tvRes.setText("IDEAL");
            tvRes.setBackgroundColor(Color.parseColor("#679800"));
            rlO.setBackgroundColor(Color.parseColor("#99679800"));
        }
        if ((inOne >= 70 && inOne <= 90) && (inTwo >= 81 && inTwo <= 90)) {
            tvRes.setText("PRE-HIGH");
            tvRes.setBackgroundColor(Color.parseColor("#967400"));
            rlO.setBackgroundColor(Color.parseColor("#99967400"));
        }

inOneinTwoSeekBar值。

100%没有任何问题。我想要做的,而不仅仅是改变颜色,我想让它从一种颜色到下一种颜色的动画淡化。我怎样才能实现它?

我在看这个例子:SO Example对此并不太清楚。

1 个答案:

答案 0 :(得分:1)

我最近制作了一个帮助类来设置颜色之间的动画,你可以找到它here。也许它可以有用吗?

至于如何使用它,它与其他动画师的用法非常相似:

ColorAnimator.ofColor(view, "color", Color.BLACK, Color.WHITE).start();

对于背景颜色,使用ViewBackgroundWrapper(编辑或新的便捷方法):

ColorAnimator.ofBackgroundColor(tvRes, Color.parseColor("#679800")).start();

这会为您的代码段中的第一个背景颜色设置动画。