【Androidアプリ作成】ボタンのカスタマイズ

<Button>タグを使ってbuttonを作っていってもよいが、
私はデザインにもこだわりたいので、定義ファイルを別で作成してみました。

定義ファイルを一つ作成しておくと、それを呼び出し定義すれば
ボタンのデザインのテンプレートが完成です(^ω^)ノ
ちなみにこれを使えばボタンを透過にすることもできちゃいます!
透過する場合は色指定を6桁ではなく、8桁で指定。
#40000FFみたいな。

ちなみに今回は今作成中のアプリのボタンデザインです。
3つの<item>タグはそれぞれプレス(押したとき)、フォーカス(hoverしたときだが、マウスなどのポインティングデバイスで操作しなければ実行動作がわからないという罠)、ノーマル(何にもないとき)の設定です。

■game_select_button_stateful.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

//押したときの設定
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="5dip" />

//グラデーションの指定(gradient)
<gradient
android:angle="90"
android:endColor="#CBF1A2"
android:startColor="#9EE33B" />

//ボタンのパディング
<padding
android:top="10dip"
android:bottom="10dip"
android:left="0dip"
android:right="0dip" />

//ボタンの線
<stroke
android:width="3dip"
android:color="#80D580" />
</shape>
</item>

//クリックしたときの設定
<item android:state_focused="true">
<shape android:shape ="rectangle">
<corners android:radius="5dip" />
<gradient
android:angle="90"
android:endColor="#CBF1A2"
android:startColor="#9EE33B" />
<padding
android:top="10dip"
android:bottom="10dip"
android:left="0dip"
android:right="0dip" />

<stroke
android:width="3dip"
android:color="#80D580" />
</shape>
</item>

<item>
//何も条件がない通常の設定
<shape android:shape ="rectangle">
<corners android:radius="5dip" />
<gradient
android:angle="90"
android:endColor="#A9E665"
android:startColor="#80BF2B" />
<padding
android:top="10dip"
android:bottom="10dip"
android:left="0dip"
android:right="0dip" />
<stroke
android:width="3dip"
android:color="#339933" />
</shape>
</item>
</selector>

・・・とこんな感じの定義ファイルを作成しましたら、
あとは使いたいところで呼び出すだけです。

■呼び出したいところのXML

<Button
android:background="@drawable/game_select_button_stateful">
</Button>

2011.5.25
神森 真昼

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA

*