1

ImageButton があり、ボタンを押すとボタンの背景の色が変わるようにしたいと考えています。この質問から button_bg.xml ファイルをコピーしました。

button_bg.xml は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

54 行目は次のようになります。

<ImageButton
     android:id="@+id/sendButton"
     android:background="@drawable/button_bg"
     android:src="@drawable/ic_action_send_now"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginRight="4dp"
     android:layout_alignParentRight="true" />

私は行を削除しようとしました:

android:background="@drawable/button_bg"

これにより、アプリケーションのクラッシュは停止しますが、ボタンの色は変わりません。

どんな助けでもいただければ幸いです

4

1 に答える 1

0

button_bg.xml を次のように変更します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/clr_pressed"/> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@android:color/transparent"/> <!-- focused -->
    <item android:drawable="@android:color/transparent"/> <!-- default -->
</selector>

そしてstrings.xmlに以下を追加します

<drawable name="clr_normal">#AAAAAA</drawable>
<drawable name="clr_pressed">#777777</drawable>

問題は解決され、コードは意図したとおりに機能しました。

于 2013-10-17T13:57:08.087 に答える