次のようなことを試すことができます:
まず、res/drawable/ フォルダーにボタンのセレクターを作成します (selector_button.xml と呼びましょう)。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/image_resource_for_button_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/image_resource_for_button_pressed"
android:state_focused="true" />
<item android:drawable="@drawable/image_resource_for_button_normal" />
</selector>
ここでは、 as だけでなくandroid:drawable
、やも定義できます。より複雑なレイアウトが必要な場合は、たとえば、ボタンの背景画像とその上に別の画像を使用して定義する必要があります。@drawable
@color
@layout
RelativeLayout
これを行うには、res/drawable/ フォルダーに (image_resource_for_button_pressed.png
押されてフォーカスされた状態の場合) と(通常の状態の場合) が必要です。image_resource_for_button_normal.png
その後、次のようにボタンを作成します。
<Button
android:id="@+id/aButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector_button"
android:text="Hardcoded string" />
このアプローチは、画像リソースの変更を .xml ファイルに抽出しただけなので、コードの可読性を維持するのに役立ちます。