June 3, 2012

画像Buttonの作り方

画像Buttonの作り方です。

基本は「テキスト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