动画多个TextView的背景颜色

时间:2015-09-17 13:52:33

标签: android animation android-animation textview

我的background-color内有一些TextViews,其中包含一些文字,我想同时为所有文字视图设置Activity动画。

动画应该是background color从当前文本视图背景颜色到另一种颜色,例如红色,并从淡红色淡出到默认的textview颜色。

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

一个解决方案可能是使用TransactionDrawable

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/start_drawable" />
    <item android:drawable="@drawable/end_drawable" />
</transition>

其中start_drawableend_drawable的形状为:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@color/start_color"/>
</shape>

在运行时,

TransitionDrawable transition = (TransitionDrawable) textView.getBackground();
transition.startTransition(duration);

使用ObjectAnimator,感谢@pskink将其指出,

final ObjectAnimator animaor = ObjectAnimator.ofObject(textView, "backgroundColor", new ArgbEvaluator(), startColor, endColor);
animaor.setDuration(300);
animaor.setRepeatCount(2);
animaor.setRepeatMode(ValueAnimator.REVERSE);
animaor.start();

ObjectAnimatorArgbEvaluator要求api等级11