我的background-color
内有一些TextViews
,其中包含一些文字,我想同时为所有文字视图设置Activity
动画。
动画应该是background color
从当前文本视图背景颜色到另一种颜色,例如红色,并从淡红色淡出到默认的textview颜色。
可以这样做吗?
答案 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_drawable
和end_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();
ObjectAnimator
和ArgbEvaluator
要求api等级11