嗨,我有一个具有启用状态和禁用状态的按钮。最初它将处于禁用状态,如下所示
在特定时间我需要启用它,如下所示
我想动画化这个状态变化
这是我的无效绘图:-
<?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>
其中 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>
关于android - Android 中状态更改时的按钮动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138469/