【Android】ImageButtonの枠を消す方法とクリックした時に色や画像を変える方法
こんにちは。
ImageButtonを使うと、デフォルトだと枠ができてしまい少し格好悪いです。
そこで、その枠をなくしたいのですが、なくすだけならImageButtonの背景を以下のように指定するとできます。
android:background="@null"
ただ、上記のようにやるとクリックしたときに反応がなくなってしまい、クリックしたかどうか分かりません。
そこで、クリックしたときに背景色や画像を変えることでクリックしたことを示したいと思います。
やり方は以下のとおりです。
button_color.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Buttonが押された時 --> <item android:state_pressed="true" android:drawable="@drawable/start_button_clicked" /> <!-- 色を変更する場合は、android:color="@color/red" のようにする --> <!-- Buttonが押されてない時 --> <item android:state_pressed="false" android:drawable="@drawable/start_button" /> <!-- Buttonにフォーカスがあたった時 --> <item android:state_focused="true" android:drawable="@drawable/start_button" /> </selector>
- レイアウトファイルで、ImageButton のパラメータに以下を指定する
android:background="@drawable/button_color"
- android:src="@drawable/button のパラメータを消す(これを消さないと背景が見えません。これでハマってました。。。)
- 画像は先程のXMLで通常時の画像指定をしているので問題ありません。
以上です。
ちなみに上記の方法は普通のButtonでもできます。
それでは。