1

ボタンをimage button押したときにボタンの色を変更したいです。まず、以下のtransparentようにデフォルトの状態色として表示します。ただし、押しても強調表示されません。そこで、ステート ドローアブルを使用して押されたときに、他の色を使用して強調表示することにしました。しかし、賢明なスタイルを通じて背景色を維持する方法。デフォルトでは透明で、押されたときに他の色を表示する必要があることを意味します。

現在のコード:

<ImageButton 
        android:id="@+id/imgbutton"
            android:layout_width="20dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:background="@android:color/transparent"
        />

コード化する必要があります:

<ImageButton 
        android:id="@+id/imgbutton"
            android:layout_width="20dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:background="@drawable/btnselector"
        />

では、ここでbtnselector.xmlはどうあるべきでしょうか?

4

1 に答える 1

1

中に置くres/color

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true" android:color="@color/green_text_color"/> <!-- pressed -->
<item android:state_focused="true" android:color="@color/green_text_color"/> <!-- focused -->
<item android:color="@android:color/white"/> <!-- default -->

</selector>

res/drawable 内に新しい形状を作成する

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="rectangle"> 
     <solid android:color="@color/yourxmlfile" /> 
</shape>

そしてそれを背景として置きます

またはres/drawableセレクター

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
      <item android:drawable="@drawable/green_botton_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/green_botton_highlited"
          android:state_focused="true" />
    <item android:drawable="@drawable/green_botton" />

</selector>
于 2013-05-27T07:06:45.113 に答える