2016-03-21 117 views
1

嗨,我有一個啓用狀態且失效state.initially這將是禁用狀態的按鈕在特定的時間,我需要啓用它下面按鈕動畫狀態改變

Enabled State

如圖所示我想動畫這個狀態變化

這是我的無效繪製對象: -

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@android:color/transparent" /> 
    <corners android:radius="2dp" /> 
    <stroke 
     android:width="1dp" 
     android:color="#FFFFFF" /> 
</shape> 

而下面是我的使能狀態: -

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#FFFFFF" /> 
    <corners android:radius="2dp" /> 
    <stroke 
     android:width="1px" 
     android:color="#FFFFFF" /> 
</shape> 

我怎麼能動畫上的事件觸發這個狀態變化?

+0

[Animate選擇器/狀態轉換]的可能重複(http://stackoverflow.com/questions/9221535/animate-selector-state-transitions) – 0X0nosugar

+0

@ 0X0nosugar我需要對此文本更改或一些驗證.. –

+1

我想第一個答案可能是你要找的:* TransitionDrawables *。它們可以以編程方式啓動:transition.startTransition(transitionTime);但也許第一個答案中的鏈接到另一個答案更有幫助。 – 0X0nosugar

回答

0

是能夠實現使用TransitionDrawable

final Handler handler = new Handler(); 

     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       TransitionDrawable transition = (TransitionDrawable) btnSignIn.getBackground(); 
       transition.startTransition(1000); 
       btnSignIn.setTextColor(Color.BLACK); 
      } 
     }, 1000); 

和我的新繪製的結果是這樣的: -

<?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="@drawable/invalid_button" /> 
    <item android:drawable="@drawable/valid_button" /> 
</transition> 

其中invalid_button.xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@android:color/transparent" /> 
    <corners android:radius="2dp" /> 
    <stroke 
     android:width="1dp" 
     android:color="#FFFFFF" /> 
</shape> 

而且valid_button.xml :

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#FFFFFF" /> 
    <corners android:radius="2dp" /> 
    <stroke 
     android:width="1px" 
     android:color="#FFFFFF" /> 
</shape>