按下按钮背景更改布局

时间:2012-05-27 12:08:29

标签: android button statelistdrawable

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

我希望描述不要混淆

1 个答案:

答案 0 :(得分:2)

我认为你必须为播放状态选择一个选择器,为暂停状态设置另一个选择器:

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

您必须看到this链接。

enter image description here

干杯