このページでは、外部に公開可能な次のタイプのリソースを定義します。
- ブール値
- ブール値を保有する XML リソース。
- 色
- 色の値(16 進数色コード)を扱う XML リソース。
- ディメンション
- ディメンションの値(と測定単位)を扱う XML リソース。
- ID
- アプリリソースとコンポーネントの一意の識別子を提供する XML リソース。
- 整数
- 整数値を保有する XML リソース。
- 整数配列
- 整数の配列を提供する XML リソース。
- 型付き配列
TypedArray
を提供する XML リソース(ドローアブルの配列に使用できます)。
ブール値
XML 内で定義されたブール値。
注: ブール値は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、ブール値リソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。<bool>
要素のname
をリソース ID として使用します。- リソースの参照:
-
Java 内:
R.bool.bool_name
XML 内:@[package:]bool/bool_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- 要素:
- 例:
res/values-small/bools.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
次のアプリコードは、ブール値を取得します。
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);次のレイアウト XML は、属性にブール値を使用しています。
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
色
XML 内で定義された色の値。色は、RGB 値とアルファ チャンネルで指定します。カラーリソースは、16 進数の色の値を使用できる任意の場所で使用できます。また、XML 内でドローアブル リソースが想定されている場合も、カラーリソースを使用できます(例: android:drawable="@color/green"
)。
値は常に番号記号(#)で始め、その後に次のいずれかの形式で Alpha-Red-Green-Blue 情報を続けます。
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
注: 色は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、カラーリソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/colors.xml
ファイル名は任意です。<color>
要素のname
をリソース ID として使用します。- リソースの参照:
-
Java 内:
R.color.color_name
XML 内:@[package:]color/color_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- 要素:
- 例:
res/values/colors.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
次のアプリコードは、カラーリソースを取得します。
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);次のレイアウト XML は、色を属性に適用しています。
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
ディメンション
XML 内で定義されたディメンションの値。ディメンションは、数値の後に測定単位を付加して指定します(10px、2in、5sp など)。Android では次の測定単位がサポートされています。
dp
- 密度非依存ピクセル - 画面の物理密度に基づく抽象単位。この単位は、160 dpi(1 インチあたりのドット数)画面を基準にしています。160 dpi での 1 dp は 1 px とほぼ等しくなります。高密度画面で実行する場合、1 dp の描画に使用されるピクセル数は、画面の dpi に応じた係数に基づいて増加します。
同様に、低密度画面の場合、1 dp に使用されるピクセル数は減少します。dps とピクセルの比率は、画面の密度に応じて変化しますが、必ずしも正比例するわけではありません。px 単位の代わりに dp 単位を使用すると、レイアウト内のビューのディメンションを、さまざまな画面密度に合わせて適切に変更できます。実画面での UI 要素を、デバイスを問わず一貫した大きさで表示できます。
sp
- スケール非依存ピクセル - これは dp 単位と似ていますが、ユーザーのフォントサイズ環境設定に基づいてスケーリングされます。フォントサイズを指定する場合は、この単位を使用することをおすすめします。画面密度とユーザー環境設定の両方に合わせて調整されるようになります。
pt
- ポイント - 画面の物理サイズに基づく単位。密度が 72 dpi の画面の場合、1/72 インチになります。
px
- ピクセル - 画面上の実際のピクセルに対応します。実際の表示はデバイスによって異なるため、この単位の使用はおすすめしません。1 インチあたりのピクセル数はデバイスによって異なる場合があり、画面上で利用可能な総ピクセル数もデバイスによって増減する場合があります。
mm
- ミリメートル - 画面の物理サイズに基づきます。
in
- インチ - 画面の物理サイズに基づきます。
注: ディメンションは、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、ディメンション リソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。<dimen>
要素のname
をリソース ID として使用します。- リソースの参照:
-
Java 内:
R.dimen.dimension_name
XML 内:@[package:]dimen/dimension_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- 要素:
- 例:
res/values/dimens.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources>
次のアプリコードは、ディメンションを取得します。
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);次のレイアウト XML は、ディメンションを属性に適用しています。
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
ID
XML 内で定義された一意のリソース ID。<item>
要素内で指定されている名前を使用して、Android デベロッパー ツールがプロジェクトの R.java
クラス内に一意の整数を作成します。これは、アプリリソースの識別子(UI レイアウト内の View
など)として使用することも、アプリコード内で使用する一意の整数(たとえば、ダイアログや結果コードの ID)として使用することもできます。
注: ID は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、ID リソースを他のシンプルなリソースと組み合わせることができます。なお、ID リソースは実際のリソース アイテムを参照するものではありません。単なる一意の ID であり、他のリソースにアタッチしたり、アプリ内で一意の整数として使用したりします。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。- リソースの参照:
-
Java 内:
R.id.name
XML 内:@[package:]id/name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- 要素:
- 例:
-
res/values/ids.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
次のレイアウト スニペットでは、
Button
ウィジェットに対して"button_ok"
ID を使用しています。<Button android:id="@id/button_ok" style="@style/button_style" />
上記の
ids.xml
の例で定義されているように、この ID はすでに存在するため、android:id
値の ID 参照にプラス記号は含まれません(android:id="@+id/name"
の形式で、プラス記号を使用して XML リソースに ID を指定した場合、"name"
ID が存在しておらず、作成する必要があることを意味します)。別の例として、次のコード スニペットは、ダイアログ用の一意の識別子として
"dialog_exit"
ID を使用しています。Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);同じアプリで、ダイアログを作成する際に
"dialog_exit"
ID を比較します。Kotlin
override fun
onCreateDialog
(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }Java
protected Dialog
onCreateDialog
(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
整数
XML 内で定義された整数。
注: 整数は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、整数リソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。<integer>
要素のname
をリソース ID として使用します。- リソースの参照:
-
Java 内:
R.integer.integer_name
XML 内:@[package:]integer/integer_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- 要素:
- 例:
-
res/values/integers.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
次のアプリコードは整数を取得します。
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
整数配列
XML 内で定義された整数の配列。
注: 整数配列は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、整数配列リソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。<integer-array>
要素のname
をリソース ID として使用します。- コンパイルされるリソースのデータ型:
- 整数の配列へのリソース ポインタ。
- リソースの参照:
-
Java 内:
R.array.integer_array_name
XML 内:@[package:]array/integer_array_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- 要素:
- 例:
res/values/integers.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources>
次のアプリコードは、整数配列を取得します。
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
型付き配列
XML 内で定義された TypedArray
。このリソースを使用すると、ドローアブルなど、他のリソースの配列を作成できます。配列のリソースタイプは同じである必要はなく、混合リソースタイプの配列を作成できます。ただし、TypedArray
クラスの get...()
メソッドを使用して各アイテムを適切に取得できるように、どのデータ型が配列内のどこにあるのかを把握しておく必要があります。
注: 型付き配列は、name
属性で提供される値を使用して参照されるシンプルなリソースです(XML ファイルの名前を使用して参照されるわけではありません)。そのため、単一の XML ファイル内の単一の <resources>
要素の下で、型付き配列リソースを他のシンプルなリソースと組み合わせることができます。
- ファイルの場所:
res/values/filename.xml
ファイル名は任意です。<array>
要素のname
をリソース ID として使用します。- コンパイルされるリソースのデータ型:
TypedArray
へのリソース ポインタ。- リソースの参照:
-
Java 内:
R.array.array_name
XML 内:@[package:]array/array_name
- 構文:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- 要素:
- 例:
res/values/arrays.xml
に保存された XML ファイル:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
次のアプリコードは、各配列を取得してから、各配列の最初のエントリを取得します。
Kotlin
val icons: TypedArray =
resources
.obtainTypedArray
(R.array.icons) val drawable: Drawable = icons.getDrawable
(0) val colors: TypedArray =resources
.obtainTypedArray
(R.array.colors) val color: Int = colors.getColor
(0,0)Java
Resources res =
getResources()
; TypedArray icons = res.obtainTypedArray
(R.array.icons); Drawable drawable = icons.getDrawable
(0); TypedArray colors = res.obtainTypedArray
(R.array.colors); int color = colors.getColor
(0,0);