2016-03-21 121 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>