状态改变时Android中的按钮动画

状态改变时Android中的按钮动画,android,android-animation,Android,Android Animation,嗨,我有一个按钮,有启用状态和禁用状态。最初它将处于禁用状态,如下所示 在特定时间,我需要如下所示启用它 我想设置此状态更改的动画 这是我的无效绘图:- <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:c

嗨,我有一个按钮,有启用状态和禁用状态。最初它将处于禁用状态,如下所示

在特定时间,我需要如下所示启用它

我想设置此状态更改的动画

这是我的无效绘图:-

<?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>


如何在事件触发器上设置此状态更改的动画???

能够使用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>

其中无效的_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>
<?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>

和有效的_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>
<?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>


可能重复@0X0nosugar我需要对文本进行更改或进行验证…我想第一个答案可能就是您想要的:TransitionDrawables。它们可以通过编程方式启动:transition.startttransition(transitionTime);但是,第一个答案中指向另一个答案的链接可能更有用。@0X0nosugar我可以使用TransitionDrawable as metioned获得结果。。。已将代码粘贴到下面。。塔克斯