2015-02-09 83 views
0
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(); 

非常感謝您的任何建議,

回答

1

可以完成通過使用此線程中看到的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); 

這應該讓你開始。