サイト移転のお知らせ:http://techbooster.org/に移転しました

スタイルを使ってレイアウトを定義する

8月 1, 2010   //   by kseto   //   ユーザインターフェース  //  2 Comments

スタイルを使うとビューやウィンドウの持ついくつもの属性に関する設定値をまとめて扱うことができます。
たとえばTextViewの場合、テキストのフォントやサイズ、ビューの幅・高さといった属性を持ちますが、
これらの属性に関する設定値をひとつのスタイルとして定義することができます。
そして、TextViewに対して定義したスタイルを指定すれば、一括で各属性の設定を行うことができるわけです。
属性値を一括で管理できるので、属性値の変更の際にも変更箇所を減らすことができます。

それではスタイルの使い方についてサンプルをご紹介したいと思います。
続きは以下からどうぞ。

スタイルの定義

スタイルの定義はres/values/以下にxmlファイルを作成しそこに記述します。
ファイル名は任意です。サンプルではstyles.xmlとしています。

では、実際にstyles.xmlにスタイルを定義しましょう。
幅をfill_parent、高さをwrap_content、
背景色を白、文字色を黒というスタイルをMyStyleという名前で定義します。

<style name="MyStyle">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">#ffffff</item>
    <item name="android:textColor">#000000</item>
</style>

これをTextViewに適用すると以下のようになります。

<TextView>
    style="@style/MyStyle"
    android:text="@string/hello"
</TextView>

スタイルの継承

スタイルは別のスタイルで継承し、変更・拡張することが可能です。
parentアトリビュートで継承元となるスタイルを指定します。

<style name="MyStyle2" parent="@style/MyStyle">
	<item name="android:background">#ff0000</item>
    <item name="android:textColor">#ffffff</item>
</style>

MyStyle2は背景色を赤に、文字色を白にしています。
MyStyleを継承していますので、幅、高さはMyStyleと同じ設定値になっています。

関連する記事:

Sponsored Link

2 Comments

  • [...] スタイルと同様の機能にテーマというものがあります。 テーマも、ビューやウィンドウの属性値をまとめて設定する機能なのですが、 テーマはスタイルのように個々のビューに対して [...]

  • [...] スタイルを使ってレイアウトを定義する [...]

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です