使用属性动画改变2种不同的颜色
问题描述:
Android Studio 1.1 Beta 4
你好之间的视图的背景颜色,使用属性动画改变2种不同的颜色
我试图动画一PagerTitleStrip从深绿颜色变为浅绿色和重演。但是,当我尝试并开始动画时,没有任何变化。
这是我的PagerTitleStrip
,我试图改变背景属性。这里没有指定Background属性,因为我会在运行时更改它。在我res/animator/pager_title_animator.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="background"
android:valueTo="@android:color/holo_green_light"
android:valueFrom="@android:color/holo_green_dark"
android:duration="500"
android:repeatCount="-1"
android:repeatMode="reverse"/>
</set>
在我的Java代码
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#fff"/>
我的动画文件,我启动它:
AnimatorSet animatorSet = (AnimatorSet)AnimatorInflater.loadAnimator(getApplicationContext(),R.animator.pager_title_animator);
animatorSet.setTarget(mPagerTitleStrip);
animatorSet.start();
非常感谢您的任何建议,
答
可以完成通过使用此线程中看到的TransitionDrawable:Animate change of view background color on Android
这里的故障:
创建您绘制的文件夹类似这样的绘制xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
<item android:drawable="@android:color/holo_green_light" />
<item android:drawable="@android:color/holo_green_dark" />
</transition>
这个定义您的寻呼机标题条为背景:
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#fff"
android:background="@drawable/my_transition_bg"/>
然后在代码中生成如下动画:
TransitionDrawable transition = (TransitionDrawable) mPagerTitleStrip.getBackground();
transition.startTransition(500);
这应该让你开始。