我目前正在使用相机 api,并希望实现一个按钮,用于启动和停止视频录制。该按钮有四个不同的图像:video_start_default、video_start_pressed、video_stop_default 和 video_stop_pressed。它应该在按下时和开始/停止视频后改变其布局。
我为此创建了这个 xml 文件。
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:state_selected="false"
android:state_pressed="false"
android:drawable="@drawable/video_start_default" />
<item
android:state_selected="false"
android:state_pressed="true"
android:drawable="@drawable/video_start_pressed" />
<item
android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/video_stop_default" />
<item
android:state_selected="true"
android:state_pressed="true"
android:drawable="@drawable/video_stop_pressed" />
<item android:drawable="@drawable/video_default" />
</selector>
为了在开始和停止工作之间进行更改,我在 onclicklistener 中设置了 select 属性
if(videoButton.isSelected())
videoButton.setSelected(false);
else{
videoButton.setSelected(true);
}
基本上这行得通。
在按下 video_start_default 时,video_start_pressed 会正确显示,但问题是在释放 video_start_pressed 后,video_stop_pressed 会显示一毫秒而不是 video_stop_default。奇怪的是,单击 video_stop_pressed 后问题没有发生。这是 video_start_default 直接可见的。
我希望描述不会令人困惑