XML で Button 変化

ボタンの変化をXMLで指定するには selector というのを指定してあげます
state_pressed が true なら押されている
state_focused が true ならフォーカスがあたっている
状態になりそれぞれのイメージを指定します

というわけで, XMLでボタンを変化させてみた

XMLリソース
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.   <!-- 押されたときの Button -->  
  4.   <item android:drawable="@drawable/icon_pressed"  
  5.         android:state_pressed="true" />  
  6.   <!-- フォーカスがあたっているときの Button -->  
  7.   <item android:drawable="@drawable/icon_focused"  
  8.         android:state_focused="true" />  
  9.   <!-- 通常時の Button -->  
  10.   <item android:drawable="@drawable/icon" />  
  11. </selector>  

んで、メインの方はただバックグラウンドに指定するだけ
XMLで指定してしまってもOK

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.Button;  
  4.   
  5. public class ButtonXMLTest extends Activity {  
  6.   Button button;  
  7.   @Override  
  8.   public void onCreate(Bundle savedInstanceState) {  
  9.     super.onCreate(savedInstanceState);  
  10.     setContentView(R.layout.buttonxmltest);  
  11.       
  12.     button = (Button) findViewById(R.id.Button);  
  13.     button.setBackgroundResource(R.drawable.buttonxml);  
  14.   }      
  15. }  

プログラムを実行すると...

通常時

ボタンにフォーカスがあたったとき

ボタンが押されたとき


こんな感じ!

参考サイト
http://developer.android.com/intl/ja/resources/tutorials/views/hello-formstuff.html