Questa pagina definisce i seguenti tipi di risorse che puoi esternalizzare:
- Bool
- Risorsa XML che trasporta un valore booleano.
- Colore
- Risorsa XML che porta un valore colore (un colore esadecimale).
- Dimensione
- Risorsa XML che trasporta un valore di dimensione (con un'unità di misura).
- ID
- Risorsa XML che fornisce un identificatore univoco per le risorse dell'applicazione e componenti.
- Numero intero
- Risorsa XML che contiene un valore intero.
- Array intero
- Risorsa XML che fornisce un array di numeri interi.
- Array digitato
- Risorsa XML che fornisce un
TypedArray
(che puoi utilizzare per un array di drawable).
Bool
Un valore booleano definito in XML.
Nota: un bool è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
Ad esempio, puoi combinare le risorse bool con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<bool>
viene utilizzato come risorsa ID. - riferimento della risorsa:
-
In Java:
R.bool.bool_name
In XML:@[package:]bool/bool_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- elementi:
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione recupera il valore booleano:
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);Il seguente file XML di layout utilizza il valore booleano per un attributo:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
res/values/filename.xml
Colore
Un valore di colore definito in XML.
Il colore viene specificato utilizzando un valore RGB e un canale alfa. Puoi utilizzare una risorsa colore
in tutti i luoghi che accettano un valore colore esadecimale. Puoi utilizzare una risorsa colore anche quando
risorsa drawable prevista in XML, ad esempio android:drawable="@color/green"
.
Il valore inizia sempre con un carattere cancelletto (#), seguito dal carattere Informazioni su Alfa-Rosso-Verde-Blu in uno dei seguenti formati:
- #RGB
- #ARGB
- N. RRGGBB
- N. AARRGGBB
Nota: un colore è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
ad esempio, puoi combinare le risorse colore con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<color>
viene utilizzato come dell'ID risorsa. - riferimento della risorsa:
-
In Java:
R.color.color_name
In XML:@[package:]color/color_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- elementi:
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione recupera la risorsa del colore:
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);Il seguente file XML di layout applica il colore a un attributo:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
res/values/colors.xml
Dimensione
Un valore di dimensione definito in XML. Una dimensione viene specificato con un numero seguito da un'unità di misura, ad esempio 10 px, 2 pollici o 5 sp. Android supporta le seguenti unità di misura:
dp
- Pixel indipendenti dalla densità: un'unità astratta basata sulla densità fisica dei
schermo. Queste unità sono relative a una schermata da 160 dpi (punti per pollice), in cui 1 dp è all'incirca uguale
a 1 px. Su uno schermo ad alta densità, viene aumentato il numero di pixel utilizzati per disegnare 1 dp.
di un fattore appropriato per i DPI dello schermo.
Analogamente, in una schermata a densità più bassa, il numero di pixel utilizzati per 1 dp viene ridotto. Il rapporto tra dps e pixel cambia con la densità dello schermo. ma non necessariamente in proporzione diretta. Una soluzione consiste nell'utilizzare le unità dp anziché le unità px per ridimensionare correttamente le dimensioni di visualizzazione nel layout in base alle diverse densità dello schermo. Fornisce coerenza per le dimensioni reali degli elementi UI tra diversi dispositivi mobili.
sp
- Pixel indipendenti dalla scala: è come l'unità dp, ma viene ridimensionato anche dal carattere dell'utente. preferenza relativa alle dimensioni. È consigliabile utilizzare questa unità per specificare le dimensioni dei caratteri, in modo che vengano regolate sia per la densità dello schermo che per le preferenze dell'utente.
pt
- Punti: 1/72 di pollice in base alle dimensioni fisiche dello schermo, ipotizzando uno schermo con densità di 72 dpi.
px
- Pixel: corrisponde ai pixel effettivi sullo schermo. Ti consigliamo di non utilizzare questa unità perché la rappresentazione effettiva può variare da un dispositivo all'altro. Dispositivi diversi possono avere un numero di pixel diverso per pollice e la quantità totale di pixel disponibili sullo schermo potrebbe essere superiore o inferiore.
mm
- Millimetri: basati sulle dimensioni fisiche dello schermo.
in
- Pollici: si basano sulle dimensioni fisiche dello schermo.
Nota: una dimensione è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
Ad esempio, puoi combinare le risorse delle dimensioni con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<dimen>
viene utilizzato come dell'ID risorsa. - riferimento della risorsa:
-
In Java:
R.dimen.dimension_name
In XML:@[package:]dimen/dimension_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- elementi:
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione recupera una dimensione:
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);Il seguente file XML di layout applica le dimensioni agli attributi:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
res/values/filename.xml
ID
Un ID risorsa univoco definito in XML. Utilizzare il nome che fornisci nella sezione <item>
, gli strumenti per sviluppatori Android creano un numero intero univoco nella classe R.java
del progetto, che puoi utilizzare come
per le risorse di un'applicazione, ad esempio View
nel layout della UI,
o un numero intero univoco da utilizzare nel codice dell'applicazione, ad esempio l'ID di una finestra di dialogo o
il codice dei risultati.
Nota: un ID è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
ad esempio, puoi combinare le risorse ID con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
. Inoltre, una risorsa ID non fa riferimento
un vero elemento di risorsa: si tratta di un ID univoco che puoi collegare ad altre risorse o utilizzare
sotto forma di numero intero univoco nella tua applicazione.
- percorso del file:
- Il nome file è arbitrario.
- riferimento della risorsa:
-
In Java:
R.id.name
In XML:@[package:]id/name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- elementi:
- esempio:
-
File XML salvato in
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>
Il seguente snippet di layout utilizza l'ID
"button_ok"
per un widgetButton
:<Button android:id="@id/button_ok" style="@style/button_style" />
Il valore
android:id
qui non include il segno più nel riferimento ID, perché l'ID esiste già, come definito nell'esempioids.xml
precedente. Se specifichi a una risorsa XML utilizzando il segno più, nel formatoandroid:id="@+id/name"
Ciò significa che l'ID"name"
non esiste ancora ed è stato creato.Come ulteriore esempio, il seguente snippet di codice utilizza l'ID
"dialog_exit"
come identificatore univoco per una finestra di dialogo:Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);Nella stessa applicazione, l'ID
"dialog_exit"
viene confrontato durante la creazione di una finestra di dialogo: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; }
res/values/filename.xml
Numero intero
Un numero intero definito in XML.
Nota: un numero intero è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
Ad esempio, puoi combinare risorse intere con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<integer>
viene utilizzato come dell'ID risorsa. - riferimento della risorsa:
-
In Java:
R.integer.integer_name
In XML:@[package:]integer/integer_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- elementi:
- esempio:
-
File XML salvato in
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>
Il seguente codice dell'applicazione recupera un numero intero:
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
res/values/filename.xml
Array intero
Un array di numeri interi definiti in XML.
Nota: un array di numeri interi è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
Ad esempio, puoi combinare risorse di array con numeri interi con altre risorse semplici in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<integer-array>
viene utilizzato come dell'ID risorsa. - tipo di dati della risorsa compilato:
- Puntatore della risorsa a un array di numeri interi.
- riferimento della risorsa:
-
In Java:
R.array.integer_array_name
In XML:@[package:]array/integer_array_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- elementi:
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione recupera l'array di numeri interi:
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
res/values/filename.xml
Array digitato
Un elemento TypedArray
definito in XML. Puoi utilizzare
questo per creare un array di altre risorse, come drawable. Non è necessario che l'array sia omogeneo, quindi puoi creare un array di tipi di risorse misti, ma
e sapere dove si trovano i tipi di dati nell'array, in modo da poter ottenere correttamente
ogni elemento con i metodi get...()
della classe TypedArray
.
Nota: un array digitato è una risorsa semplice a cui viene fatto riferimento
utilizzando il valore fornito nell'attributo name
, non il nome del file XML. Come
Ad esempio, puoi combinare risorse array digitate con altre semplici risorse in un unico file XML,
sotto un solo elemento <resources>
.
- percorso del file:
-
Il nome file è arbitrario. L'elemento
name
dell'elemento<array>
viene utilizzato come dell'ID risorsa. - tipo di dati della risorsa compilato:
- Puntatore della risorsa a
TypedArray
. - riferimento della risorsa:
-
In Java:
R.array.array_name
In XML:@[package:]array/array_name
- sintassi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- elementi:
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione recupera ogni array, quindi ottiene la prima voce in ogni array:
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);
res/values/filename.xml