Androidの解説は順番が難しいですねぇ。
プログラムの解説は多々あるので、今回はビューの解説です。
XMLでボタンを描画するのと画像を用意するのでは何が違うか
1.軽い
2.手間が掛からない。
3.他言語対応がしやすい
などのメリットばかりなXMLですが、知識が無いと難しい。
今回は簡単なボタンから解説します。
まず、ボタンを作成するには
1.on状態のXML
2.off状態のXML
3.onとoffにどちらのXMLを描画するかを決めるXML
の3つが必要になります。
まずon状態のXMLを書きましょう。
btn_on.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 角を丸める --> <corners android:radius="5dip" /> <!-- グラデーション --> <gradient android:angle="270" android:startColor="@color/cornflowerblue" android:endColor="@color/royalblue"/> <!-- パディング --> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" /> <!-- 枠線 --> <stroke android:width="2px" android:color="@color/black" /> </shape>
次にoff状態のXMLを作成します。
btn_off.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 角を丸める --> <corners android:radius="5dip" /> <!-- グラデーション --> <gradient android:angle="270" android:startColor="@color/royalblue" android:endColor="@color/cornflowerblue"/> <!-- パディング --> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" /> <!-- 枠線 --> <stroke android:width="2px" android:color="@color/black" /> </shape>
onとoffの違いは分かりますか?
グラデーションの色がstartとend逆です。
それぐらいな方が自然に見えます。
次に、状態遷移を制御するXMLを記述します。
btn.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:dither="true" > <item android:state_pressed="true" android:drawable="@drawable/btn_on" /> <item android:drawable="@drawable/btn_off" /> </selector>
このXMLで[android:state_pressed="true"]とされている部分が
押されている間は[btn_on]を描画するとしています。
これらをdrawableに入れて、
layoutのXMLでbtn部分の背景として指定すれば完成です。
これを使ったアプリOneClickHomeもよろしくお願いします。
0 件のコメント:
コメントを投稿