私は現在カメラ API を使用しており、ビデオ録画を開始および停止するボタンを実装したいと考えています。ボタンには、video_start_default、video_start_pressed、video_stop_default、video_stop_pressed の 4 つの異なる画像があります。押したとき、およびビデオの開始/停止後にレイアウトを変更する必要があります。
そのためにこの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_default の代わりに video_stop_pressed がミリ秒間表示されることです。奇妙なことに、video_stop_pressed をクリックしても問題は発生しません。ここに video_start_default が直接表示されます。
説明が混乱しないことを願っています