基本は「テキストButtonの作り方」と同じで、テキストのかわりに背景画像を設定して画像ボタンに見せます。ここではその比較差分を中心に説明します。
通常のボタンの状態としては、通常の時と押された時の2つの状態があります。それぞれの状態の時の画像を用意し、どの状態のときにどの画像を表示するかをxmlファイルで記述します。それをリソースとして背景画像に設定すれば、状態に応じて適切な画像を表示してくれるようになります。
この例では、button1、button2の2つの画像がdrawableリソースにあるとして、通常の状態でbutton1、押された時の状態でbutton2が表示されるように記述しています。このxmlファイルをeclipseで作るときは、drawableフォルダ上で右クリック、New --> Other --> Android XML File --> Selectorで作ると便利です。このリソースはdrawableにおく必要があります。
<?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/button2" /> <!-- pressed --> <item android:drawable="@drawable/button1" /> <!-- default --> </selector>
ソースコードでの背景画像の設定方法
Button button = new Button(this); button.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); button.setBackgroundResource(R.drawable.button_state);
xmlレイアウトでのButtonの背景画像の設定方法
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_state" />
参考:Android Developers:Drawable ResourcesのState List
No comments:
Post a Comment