Androidアプリ内で使用する文字列の書式を合わせたいけど、どうやって管理させればいいの?
Androidアプリには、スタイルというものを定義する事ができます。
スタイルとは、文字列などに設定する色んな属性を一つのIDで使用できるものです。
例えば、Androidアプリに複数の画面があるとして、それぞれに配置しているTextViewの書式を合わせたいと思ったとします。
もちろん、それぞれのTextViewの属性を設定してやれば実現する事ができますが、もし、仕様変更などの理由で、文字列の色を変えたいとか、文字列の太さを変えたいという場合に、その都度、全てのTextViewの属性を書き換えるのは大変です。
そういう仕様変更にも即座に対応できるように、上記のようなケースでは、「スタイル」を使用すべきです。
それではスタイルの使用方法を説明します。
Androidのスタイルの使用方法
まず、Androidアプリのプロジェクトのres->valuesフォルダ内に、xmlファイルを新規に用意します。
このファイルは、スタイルを定義するためのxmlですので、ファイル名はstyle.xmlとします。
ファイル名は任意ですが、一般的にはstyle.xmlとするそうです。
XMLファイルの追加方法は、下記を参照してください。
EclipseでのXMLの追加方法
次に、作成したstyle.xmlをAndroid Resource Editorで開きます。
通常は関連付けられているので、ダブルクリックでOKです。
以下の画面が表示されます。
赤枠部分のAddボタンを押し、「Style/Theme」を選択します。
すると、以下の画面のようにStyle/Themeの要素が追加されます。
上の画像赤枠部分のName属性へ、わかりやすく適当な名前をつけます。
例えば、今回はTextStyleとでもしておきます。
そして、以下の画面のように、追加したStyle/Themeを右クリック⇒Addと選択します。
選択肢には「Item」しかありませんので、それをダブルクリックするなどで、Style/Theme属性の子要素として、Item属性を追加します。
以下の画面のようになりましたね。
Item属性には、統一させたいスタイルを設定します。
Nameには統一したいViewの属性名を、Valueには何で統一するかを設定します。
今回は、TextViewの文字色と文字サイズを統一させたい!という事とします。
TextViewの文字色は、「android:textColor」
TextViewの文字サイズは、「android:textSize」
これがNameに使う文字列になります。
例えば文字色を緑で統一したい!という場合は以下のようにします。
文字サイズを20spに統一したい!という場合は以下のようにします。
これでスタイルの定義はOKです。
スポンサーリンク
後は、各TextViewへ、今回作ったスタイルを参照させるだけです。
レイアウトを定義しているXML(main.xml等)を、Android Layout Editorで開きます。
そして、スタイルの設定をしたいTextViewを選択します。
赤枠で囲っているプロパティ「Style」を見てください。
ここの右側のボタンを押すと以下のように、作成したStyleを選択する事ができますので、選択します。
これでOKです。
Androidアプリを起動すると以下のように、ちゃんと設定が反映されている事がわかります。
今回は、Androidアプリ作成時にデフォルトで用意されているTextViewを使っていますが、もちろんどんなTextViewでもOKですし、もちろん他のEditText等のViewでも使えます。
今回は、「android:textColor」、「android:textSize」の2つを例にしましたが、他に統一させたいプロパティがあれば、そのプロパティを示す文字列を調べて設定すればOKです。
調べ方は、EclipceのAndroid Layout Editorで、TextView等のプロパティを調べて実際に設定した後、XMLの中身を見ればわかると思います。
例えば、、、
TextViewの文字列を太字にしたいというときは、以下の赤枠のところのようにしますよね。
赤枠のように、text styleというプロパティにboldと設定します。
これを設定した後、XMLの中身を見ると、以下のようになっています。
上で赤枠で囲ったところが追加されています。
ですので、「Style/Themeの子要素のItemタグのName属性にはandroid:textStyleという文字列を設定したらいいんだな!」とわかります。