Android Studio 1.1 Beta 4
您好,
我正在尝试为PagerTitleStrip设置动画,以将颜色从深绿色更改为浅绿色并重复自身。但是,当我尝试启动动画时,没有任何变化。
这是我PagerTitleStrip
,我正在尝试更改背景属性。此处未指定后台属性,因为我将在运行时更改它。
<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"/>
我的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代码中:
AnimatorSet animatorSet = (AnimatorSet)AnimatorInflater.loadAnimator(getApplicationContext(),R.animator.pager_title_animator);
animatorSet.setTarget(mPagerTitleStrip);
animatorSet.start();
非常感谢任何建议,
答案 0 :(得分:1)
您可以使用此线程中显示的TransitionDrawable来完成此操作:Animate change of view background color on Android
以下是细分:
在drawable文件夹中创建一个可绘制的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);
这应该让你开始。