5

ImageButton の状態が変わらないという問題があります。ボタンをクリックするか、タッチすると、同じ画像のままになります。セレクターとして使用している XML を次に示します。

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
 android:state_focused="true"
 android:state_pressed="false"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="true"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="false"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item  
 android:drawable="@drawable/default" />
</selector>

このセレクターを main.xml から次のように呼び出します。

android:background="@drawable/imagechoice"

imagechoice.xml は、セレクターを含むファイルです

Javaコードが必要でない限り、これが機能しない理由はわかりませんが、私が見たものはすべて、これが機能するはずだと言っています。

4

5 に答える 5

2

ImageButton を使用する場合、background ではなく 'src' プロパティを使用する必要がありますか?

于 2010-12-25T19:58:16.163 に答える
2

同じ画像とボタン XML をすべての「描画可能な」フォルダー (hdpi、ldpi、mdpi) にコピーしてください。それが私のアプリでこの問題を解決した方法です。

幸運を :)

于 2011-02-06T01:56:52.653 に答える
1

私はほぼ同じXMLを使用しており、問題なく動作します。どこかでドローアブルのコードを置き換えていませんか?

別の注意点として、状態マッチングのカスケードの性質を使用することで、XMLを単純化できます。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/pushed"
          />
    <item android:state_focused="true"
          android:drawable="@drawable/pushed"
          />
    <item android:drawable="@drawable/default"
          />
</selector>
于 2011-09-29T14:47:52.213 に答える
0

これは、独自のカスタム イメージを含むボタンの xml であり、うまく機能します。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/btn_off" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:drawable="@drawable/btn_off" />
</selector>
于 2010-12-25T20:58:49.833 に答える
0

下記のように画像ボタンの背景を設定してください。セレクターを背景として設定しているのではなく、画像を背景として設定していると思います。

 <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/button_up_selector"
        android:text="1"
        android:textColor="#fffafa"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="5dp"/>
于 2012-10-12T11:28:35.610 に答える