我有一个非常基本的选择器,我用它作为一些按钮的背景来实现关闭状态.这是xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime"> <item android:drawable="@color/home_button_blue_down" android:state_selected="true" /> <item android:drawable="@color/home_button_blue_down" android:state_pressed="true" /> <item android:drawable="@color/home_button_blue" /> </selector>
使用此选择器,每次按钮更改状态时都会发生淡入淡出动画.换句话说,转换将在从按下按下到按下时以及从按下按下到按下时都会生成动画.
现在,我的问题是:它是否有可能使这些状态变化只有其中一个动画?当用户按下按钮时,我希望在没有动画的情况下立即进行状态转换.当按钮被按下时,我希望当正常状态消失时,状态会淡出.这可以完成吗?
解决方法
选择器上的动画:(我的drawables是颜色)
De-Press (Out) android:exitFadeDuration="@android:integer/config_shortAnimTime" Press (In) android:enterFadeDuration="@android:integer/config_shortAnimTime"
完整示例:
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="@android:integer/config_shortAnimTime" android:exitFadeDuration="@android:integer/config_shortAnimTime"> <item android:state_checked="false" android:drawable="@color/transparent"/> <item android:state_checked="true" android:drawable="@drawable/circle_blue"/> </selector>