今回は文字列や色、寸法などの定数値リソースについて詳しく見ていきます。
色
「色」に関するリソースはres/values/colors.xml以下に格納します。
ファイル名は任意です。
色リソースはcolors.xmlに以下のように記述します。
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="background">#FFFFFF</color> <color name="foreground">#000000</color> </resources>
色の指定にはいくつかのフォーマットがあります。
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
RはRed、GはGreen、BはBlueで、AはAlpha(透過度)です。
定義した色リソースはプログラムから以下のように参照できます。
int bgcolor = getResources().getColor(R.colors.background); TextView1.setBackgroundColor(bgcolor);
getResources().getColorというメソッドでcolors.xmlに定義されている
backgroundという色リソースを参照しています。
他のリソースファイルから参照したい場合は以下のようにします。
<color name="background2">@colors/background</color>
文字列
「文字列」に関するリソースはres/values/strings.xml以下に格納します。
ファイル名は任意です。
文字列リソースはstrings.xmlに以下のように記述します。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="text_msg">Text Message</string> </resources>
プログラムからは以下のように参照します。
TextView1.setText(R.string.text_msg);
他のリソースファイルから参照したい場合は以下のようにします。
<string name="text_msg2">@strings/text_msg</color>
寸法
「寸法」に関するリソースはres/values/dimens.xml以下に格納します。
ファイル名は任意です。
寸法リソースはdimens.xmlに以下のように記述します。
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="one_pixel">1px</dimen> <dimen name="double_density">2dp</dimen> <dimen name="sixteen_sp">16sp</dimen> </resources>
プログラムからは以下のように参照します。
TextView1.setHeight(R.dimens.one_pixel);
他のリソースファイルから参照したい場合は以下のようにします。
<string name="one_pixel2">@dimens/one_pixel</color>