最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。コメントはまだありませんAndroidでは、Viewを自在にカスタムすることが可能です。Viewをカスタムした例は、以下の記事にも書かれていますので参考にしてみてください。用いてViewをドラッグするGellaryを使って横スクロールする今回は、タップした際に、指定したアクティビティに画面遷移を行うButtonを作成してみます。遷移先のアクティビティは、layoutファイルのxmlファイルの属性にて指定できるようにします。ポイントは以下の点です。attrs.xmlファイルにて、独自に属性を定義するmain.xmlファイルにて、独自に定義した属性に値をセットする(カスタムViewをレイアウトに配置)カスタムViewを作成し、独自に定義した属性の値をViewに反映させる以下が今回のサンプルのキャプチャ画像です。今回は、独自の属性として、ボタンに表示するテキスト、テキストの色、テキストのサイズも設定できるようにしています。※なお、本文中の「属性」は属性の名称を、「属性値」はその属性にセットされた値をそれぞれ示します。それでは続きをどうぞattrs.xmlファイルにて属性を定義するまずは、attrs.xmlファイルを作成し、その中に属性を定義します。今回は、ボタンに表示する文字、文字の色、文字のサイズ、アクティビティを属性として定義します。文字や文字色、サイズは、元々Buttonクラスのメソッドにて指定可能ですが、今回はあえて独自に定義します。&lt;/declare-styleable&gt;&lt;/resources&gt;nameは属性の名前を、formatは属性値の型をそれぞれ定義しています。レイアウトのxmlファイルでカスタムViewを定義する次に、レイアウトxmlファイルでカスタムViewを定義します。ここで、1.で独自に定義した属性に値をセットしてきます。ソースコードを以下に示します。/&gt;&lt;/LinearLayout&gt;まず、3行目を見て下さい。xmlns:txt=&quot;http://schemas.android.com/apk/res/net.sample.techbooster.customviewsample&quot;ここで、属性が定義されているパッケージを宣言します。この宣言がなかったり、パスを間違えていた場合、後にattrs.xmlファイルに定義した属性値にアクセスする際に定義が見つかりませんと怒られます。次にカスタムViewをレイアウトに配置します(8から15行目)。(この後3.で解説する)CustomViewクラスをタグに指定します(8行目)。タグ内の宣言を見てみると、4行目で定義したtxtからattrs.xmlファイルに定義した各種属性にアクセスし、値をセットしています(11〜14行目)。14行目のactivity属性には、ボタンを押下した際の遷移先アクティビティをセットしています。遷移先のアクティビティを変えたいときは、この属性値を変えるだけで遷移先が変わるよう、次の3.でカスタムViewを作成します。カスタムViewクラス(ボタン)を作成する。次に、カスタムViewクラスを作成します。ここで、独自に定義した属性値をViewに反映させます。今回はButtonを継承したCustomButtonクラスを作成します。以下が該当のソースコードです。mContext.startActivity(intent);}}14行目で、attrs.xmlファイルに定義した属性値の値をTypedArray型で取得しています。TypedArrayクラスは、属性値を配列で格納します。TypedArrayクラスのオブジェクトから各属性値の値を取得し、Buttonにセットしています。それぞれの第1引数には、TypedArrayオブジェクトに格納された値の格納位置を指定します。attrs.xmlファイルのタグ内での属性の定義順に、0番目から格納されています。第2引数には、属性値がセットされていなかった場合にセットされるデフォルト値を指定しておきます。onClick()メソッド内では、22行目で取得した、main.xmlファイルで指定したactivity属性の値をsetClassName()メソッドの第2引数にセットし、Intentで画面遷移させています。あとは、アプリ起動時のActivityで、先ほどのmain.xmlファイルをsetContentView()メソッドの引数に指定します。}}以上で、画面にボタンが表示され、タップすると、main.xmlファイルのactivity属性に指定したSubActivityに遷移します。遷移先のActivityを変えたい場合は、xmlファイルのtxt:Activity属性を変えるだけで済みます。以上で、xmlファイルを用いたカスタムビューが完成しました。2.0(β)に対応した解説書です。TechBooster.TechBoosterについて。