Cette page définit les types de ressources que vous pouvez externaliser :
- Valeur booléenne
- Ressource XML contenant une valeur booléenne.
- Couleur
- Ressource XML contenant une valeur de couleur (hexadécimale).
- Dimension
- Ressource XML contenant une valeur de dimension (avec une unité de mesure).
- ID
- Ressource XML qui fournit un identifiant unique pour les ressources et les composants d'une application.
- Nombre entier
- Ressource XML contenant un nombre entier.
- Tableau d'entiers
- Ressource XML qui fournit un tableau d'entiers.
- Tableau typé
- Ressource XML qui fournit un objet
TypedArray
(que vous pouvez utiliser pour un tableau de drawables).
Valeur booléenne
Valeur booléenne définie en XML.
Remarque : une valeur booléenne est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Ainsi, vous pouvez combiner des ressources de valeur booléenne avec d'autres ressources simples dans le même fichier XML, dans un seul élément <resources>
.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<bool>
est utilisé comme ID de ressource.- Référence de la ressource :
-
En Java :
R.bool.bool_name
En XML :@[package:]bool/bool_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- Éléments :
- Exemple :
- Fichier XML enregistré sous
res/values-small/bools.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
Le code d'application suivant récupère la valeur booléenne :
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);Le code XML de mise en page suivant utilise la valeur booléenne suivante pour un attribut :
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
Couleur
Valeur de couleur définie en XML.
La couleur est spécifiée avec une valeur RVB et un canal alpha. Vous pouvez utiliser une ressource de couleur partout où les valeurs de couleur hexadécimales sont acceptées. Vous pouvez également utiliser une ressource couleur lorsqu'une ressource drawable est attendue au format XML (par exemple, android:drawable="@color/green"
).
La valeur commence toujours par le caractère dièse (#), suivi des informations Alpha Rouge Vert Bleu, dans l'un des formats suivants :
- #RVB
- #ARVB
- #RRVVBB
- #AARRVVBB
Remarque : Une couleur est une ressource simple référencée par la valeur fournie dans l'attribut name
(et non par le nom du fichier XML). Ainsi, vous pouvez combiner des ressources de couleur avec d'autres ressources simples dans le même fichier XML, dans un seul élément <resources>
.
- Emplacement du fichier :
res/values/colors.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<color>
est utilisé comme ID de ressource.- Référence de la ressource :
-
En Java :
R.color.color_name
En XML :@[package:]color/color_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- Éléments :
- Exemple :
- Fichier XML enregistré sous
res/values/colors.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
Le code d'application suivant récupère la ressource de couleur :
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);Le code XML de mise en page suivant applique la couleur à un attribut :
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
Dimension
Valeur de dimension définie en XML. Une dimension est spécifiée par un nombre suivi d'une unité de mesure (10 px, 2 po ou 5 sp, par exemple). Les unités de mesure suivantes sont prises en charge par Android :
dp
- Pixels indépendants de la densité : unité abstraite basée sur la densité physique de l'écran. Ces unités sont relatives à un écran de 160 dpi (points par pouce), sur lequel 1 dp est égal à 1 px. Sur un écran à densité plus élevée, le nombre de pixels utilisé pour tracer 1 dp est mis à l'échelle selon un facteur approprié à la résolution de l'écran.
De même, sur un écran à faible densité, le nombre de pixels utilisés pour la résolution 1 dp est réduit. Le ratio dp/pixels change avec la densité de l'écran, mais pas nécessairement en proportion directe. L'utilisation d'unités dp au lieu de px est une solution simple qui permet de redimensionner correctement les dimensions de la vue dans votre mise en page en fonction de la densité d'écran. Elle assure la cohérence des tailles réelles de vos éléments d'interface utilisateur sur différents appareils.
sp
- Pixels indépendants de l'échelle : ces unités sont similaires aux dp, mais ils sont également ajustés en fonction des préférences de taille de police de l'utilisateur. Nous vous recommandons d'utiliser cette unité lorsque vous spécifiez la taille des polices. Elle sera ainsi ajustée à la fois en fonction de la densité de l'écran et des préférences de l'utilisateur.
pt
- Points : 1/72 de pouce selon la taille physique de l'écran (avec une densité de 72 dpi).
px
- Pixels : correspond aux pixels réels à l'écran. Nous vous déconseillons d'utiliser cette unité, car la représentation réelle peut varier d'un appareil à l'autre. Le nombre de pixels par pouce peut varier, et le nombre total de pixels disponibles sur l'écran peut être supérieur ou inférieur.
mm
- Millimètres : basés sur la taille physique de l'écran.
in
- Pouces : valeurs basées sur la taille physique de l'écran.
Remarque : Une dimension est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Vous pouvez ainsi combiner des ressources de dimension avec d'autres ressources simples dans le même fichier XML, dans un seul élément <resources>
.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<dimen>
est utilisé comme ID de ressource.- Référence de la ressource :
-
En Java :
R.dimen.dimension_name
En XML :@[package:]dimen/dimension_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- Éléments :
- Exemple :
- Fichier XML enregistré sous
res/values/dimens.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>
Le code d'application suivant récupère une dimension :
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);Le code XML de mise en page suivant applique des dimensions aux attributs :
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
ID
ID de ressource unique défini en XML. À l'aide du nom que vous indiquez dans l'élément <item>
, les outils de développement Android créent un entier unique dans la classe R.java
de votre projet. Vous pouvez l'utiliser comme identifiant pour les ressources d'une application (par exemple, un élément View
dans votre mise en page d'interface utilisateur) ou un entier unique à utiliser dans le code de votre application (par exemple, comme ID pour une boîte de dialogue ou un code de résultat).
Remarque : Un ID est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Ainsi, vous pouvez combiner des ressources d'ID avec d'autres ressources simples dans le même fichier XML, dans un seul élément <resources>
. De plus, une ressource d'ID ne fait pas référence à un élément de ressource réel. Il s'agit d'un ID unique que vous pouvez associer à d'autres ressources ou utiliser comme entier unique dans votre application.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire.- Référence de la ressource :
-
En Java :
R.id.name
En XML :@[package:]id/name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- Éléments :
- Exemple :
-
Fichier XML enregistré sous
res/values/ids.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
L'extrait de mise en page suivant utilise l'ID
"button_ok"
pour un widgetButton
:<Button android:id="@id/button_ok" style="@style/button_style" />
La valeur
android:id
n'inclut pas le signe plus dans la référence d'ID, car l'ID existe déjà, comme défini dans l'exempleids.xml
précédent. Lorsque vous spécifiez un ID pour une ressource XML à l'aide du signe plus, au formatandroid:id="@+id/name"
, cela signifie que l'ID"name"
n'existe pas encore et qu'il est créé.Dans cet autre exemple, l'extrait de code suivant utilise l'ID
"dialog_exit"
comme identifiant unique pour une boîte de dialogue :Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);Dans la même application, l'ID
"dialog_exit"
est comparé lors de la création d'une boîte de dialogue :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; }
Nombre entier
Entier défini en XML.
Remarque : Un entier est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Ainsi, vous pouvez combiner des ressources d'entiers avec d'autres ressources simples dans le même fichier XML, dans un seul élément <resources>
.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<integer>
est utilisé comme ID de ressource.- Référence de la ressource :
-
En Java :
R.integer.integer_name
En XML :@[package:]integer/integer_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- Éléments :
- Exemple :
-
Fichier XML enregistré sous
res/values/integers.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
Le code d'application suivant récupère un entier :
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
Tableau d'entiers
Tableau d'entiers définis en XML.
Remarque : Un tableau d'entiers est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Vous pouvez ainsi combiner les ressources d'un tableau d'entiers avec d'autres ressources simples dans le même fichier XML, sous un seul élément <resources>
.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<integer-array>
est utilisé comme ID de ressource.- Type de données de la ressource compilée :
- Pointeur de ressource vers un tableau d'entiers.
- Référence de la ressource :
-
En Java :
R.array.integer_array_name
En XML :@[package:]array/integer_array_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- Éléments :
- Exemple :
- Fichier XML enregistré sous
res/values/integers.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>
Le code d'application suivant récupère le tableau d'entiers :
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
Tableau typé
TypedArray
défini au format XML. Vous pouvez l'utiliser pour créer un tableau d'autres ressources, comme des drawables. Le tableau n'a pas besoin d'être homogène. Vous pouvez donc créer un tableau de types de ressources mixtes, mais vous devez connaître le type et l'emplacement des types de données dans le tableau pour pouvoir obtenir correctement chaque élément avec les méthodes get...()
de TypedArray
.
Remarque : Un tableau typé est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name
(et non le nom du fichier XML). Vous pouvez ainsi combiner les ressources d'un tableau typé avec d'autres ressources simples dans le même fichier XML, sous un seul élément <resources>
.
- Emplacement du fichier :
res/values/filename.xml
Le nom de fichier est arbitraire. Le nom (name
) de l'élément<array>
est utilisé comme ID de ressource.- Type de données de la ressource compilée :
- Pointeur de ressource vers un élément
TypedArray
. - Référence de la ressource :
-
En Java :
R.array.array_name
En XML :@[package:]array/array_name
- Syntaxe :
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- Éléments :
- Exemple :
- Fichier XML enregistré sous
res/values/arrays.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>
Le code d'application suivant récupère chaque tableau, puis obtient la première entrée dans chaque tableau :
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);