state_pressed が true なら押されている
state_focused が true ならフォーカスがあたっている
状態になりそれぞれのイメージを指定します
というわけで, XMLでボタンを変化させてみた
XMLリソース
- <?xml version="1.0" encoding="UTF-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 押されたときの Button -->
- <item android:drawable="@drawable/icon_pressed"
- android:state_pressed="true" />
- <!-- フォーカスがあたっているときの Button -->
- <item android:drawable="@drawable/icon_focused"
- android:state_focused="true" />
- <!-- 通常時の Button -->
- <item android:drawable="@drawable/icon" />
- </selector>
んで、メインの方はただバックグラウンドに指定するだけ
XMLで指定してしまってもOK
サンプルプログラム
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.Button;
- public class ButtonXMLTest extends Activity {
- Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.buttonxmltest);
- button = (Button) findViewById(R.id.Button);
- button.setBackgroundResource(R.drawable.buttonxml);
- }
- }
プログラムを実行すると...
通常時
ボタンにフォーカスがあたったとき
ボタンが押されたとき
こんな感じ!
参考サイト
http://developer.android.com/intl/ja/resources/tutorials/views/hello-formstuff.html