1

我目前正在使用相机 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 直接可见的。

我希望描述不会令人困惑

4

1 回答 1

2

我认为您必须制作两个选择器,一个用于播放状态,另一个用于暂停状态:

我有一个很好的教程给你,可以在你的项目中帮助你很多

你必须看到这个链接。

在此处输入图像描述

干杯

于 2012-05-27T12:38:39.453 回答