我正在开发我的第一个应用程序而且我遇到了问题...我发现有一个名为 android的xml标签:exitFadeDuration =“” 我想要用于在我的自定义按钮视图之间使用转换延迟。
这是我的按钮选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="125">
<item android:drawable="@drawable/alert_btn_on"
android:state_pressed="true" />
<item android:drawable="@drawable/alert_btn_on"
android:state_focused="true" />
<item android:drawable="@drawable/alert_btn_off" />
</selector>
这是我的 alert_btn_off :
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/darkestMain" />
<corners android:radius="5dp" />
</shape>
</item>
<item android:bottom="5dp">
<shape android:shape="rectangle">
<solid android:color="@color/darkerMain" />
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
这是我的 alert_btn_on
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/colorMainDark" />
<corners android:radius="5dp" />
</shape>
</item>
<item android:bottom="5dp">
<shape android:shape="rectangle">
<solid android:color="@color/darkerMain" />
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
btnOn和btnOff之间的唯一区别是底部边框,它变成了蓝色......这是我在 android:exitFadeDuration =“125” < / p>
按钮默认
按下按钮状态A
按下状态按B
我喜欢这种过渡,但我只需要为边界设置过渡,有什么办法可以实现这一点吗?顺便说一句,如果我使用enterFadeTransition
,就会发生同样的事情。
答案 0 :(得分:0)
如果您想仅为按钮的边框而不是整个背景设置动画,则必须将动画限制为边框。
您将只有一个名为/drawable/alert_btn.xml
的图层列表:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/statelist"/>
<item android:bottom="5dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
/drawable/statelist.xml
看起来像这样:
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="500">
<item android:state_focused="true" android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/colorAccent" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/colorAccent" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/colorPrimary" />
</shape>
</item>
</selector>