Auf dieser Seite werden die folgenden Arten von Ressourcen beschrieben, die Sie externalisieren können:
- Boolescher Wert
- XML-Ressource, die einen booleschen Wert enthält.
- Farbe
- XML-Ressource, die einen Farbwert (eine hexadezimale Farbe) enthält.
- Dimension
- XML-Ressource, die einen Dimensionswert (mit einer Maßeinheit) enthält.
- ID
- XML-Ressource, die eine eindeutige Kennung für Anwendungsressourcen und -komponenten bietet.
- Ganzzahl
- XML-Ressource, die einen Ganzzahlwert enthält.
- Integer-Array
- XML-Ressource, die ein Array von Ganzzahlen bereitstellt.
- Eingegebenes Array
- XML-Ressource, die ein
TypedArray
-Element bereitstellt (die du für ein Array von Drawables verwenden kannst).
Boolescher Wert
Ein in XML definierter boolescher Wert.
Hinweis: Ein boolescher Wert ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie boolesche Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Dername
des<bool>
-Elements wird als Ressourcen-ID verwendet.- Ressourcenreferenz:
-
In Java:
R.bool.bool_name
In XML:@[package:]bool/bool_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- Elemente:
- Beispiel:
- XML-Datei gespeichert unter
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>
Der folgende Anwendungscode ruft den booleschen Wert ab:
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);In der folgenden Layout-XML wird der boolesche Wert für ein Attribut verwendet:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
Farbe
Ein in XML definierter Farbwert.
Die Farbe wird mithilfe eines RGB-Werts und Alphakanals angegeben. Sie können eine Farbressource an jeder Stelle verwenden, an der ein hexadezimaler Farbwert akzeptiert wird. Du kannst auch eine Farbressource verwenden, wenn eine Drawable-Ressource im XML-Format erwartet wird, z. B. android:drawable="@color/green"
.
Der Wert beginnt immer mit einem Rautezeichen (#), gefolgt von den Informationen Alpha-Rot-Grün-Blau in einem der folgenden Formate:
- RGB
- ARGB
- RRGGBB
- #AARGGBB
Hinweis: Eine Farbe ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie Farbressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/colors.xml
Der Dateiname ist beliebig. Dername
des<color>
-Elements wird als Ressourcen-ID verwendet.- Ressourcenreferenz:
-
In Java:
R.color.color_name
In XML:@[package:]color/color_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- Elemente:
- Beispiel:
- XML-Datei gespeichert unter
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>
Mit dem folgenden Anwendungscode wird die Farbressource abgerufen:
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);In der folgenden Layout-XML wird die Farbe auf ein Attribut angewendet:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
Dimension
Ein im XML-Format definierter Dimensionswert. Eine Dimension wird mit einer Zahl gefolgt von einer Maßeinheit angegeben, z. B. 10 px, 2in oder 5sp. Die folgenden Maßeinheiten werden von Android unterstützt:
dp
- Dichteunabhängige Pixel: eine abstrakte Einheit, die auf der physischen Dichte des Bildschirms basiert. Diese Einheiten beziehen sich auf einen Bildschirm mit 160 dpi (Punkten pro Zoll), auf dem 1 dp ungefähr 1 Pixel entspricht. Bei Bildschirmen mit höherer Dichte wird die Anzahl der Pixel zum Zeichnen von 1 dp um einen Faktor entsprechend dem dpi-Wert des Bildschirms erhöht.
Ebenso wird auf Bildschirmen mit geringerer Punktdichte die Anzahl der Pixel für 1 dp herunterskaliert. Das Verhältnis von dps zu Pixel ändert sich mit der Bildschirmdichte, aber nicht unbedingt im direkten Proportion. Die Verwendung von dp-Einheiten anstelle von „px“-Einheiten ist eine Lösung, um die Größe der Ansichtsabmessungen im Layout an verschiedene Bildschirmdichten anzupassen. Sie sorgt für Einheitlichkeit für die tatsächliche Größe Ihrer UI-Elemente auf verschiedenen Geräten.
sp
- Skalierungsunabhängige Pixel: Das entspricht der dp-Einheit, wird aber auch durch die bevorzugte Schriftgröße des Nutzers skaliert. Wir empfehlen, diese Einheit bei der Festlegung von Schriftgrößen zu verwenden, damit diese sowohl an die Bildschirmdichte als auch an die Nutzerpräferenzen angepasst werden.
pt
- Punkte: 1/72 Zoll, basierend auf der physischen Größe des Bildschirms bei einer angenommenen Bildschirmdichte von 72 dpi.
px
- Pixel: Entspricht den tatsächlichen Pixeln auf dem Bildschirm. Wir empfehlen, diese Einheit nicht zu verwenden, da die tatsächliche Darstellung je nach Gerät variieren kann. Verschiedene Geräte können eine unterschiedliche Anzahl von Pixeln pro Zoll haben und möglicherweise mehr oder weniger Pixel insgesamt auf dem Bildschirm verfügbar sind.
mm
- Millimeter: für die physische Größe des Bildschirms.
in
- Zoll: basierend auf der physischen Größe des Bildschirms.
Hinweis: Eine Dimension ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie Dimensionsressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Dername
des<dimen>
-Elements wird als Ressourcen-ID verwendet.- Ressourcenreferenz:
-
In Java:
R.dimen.dimension_name
In XML:@[package:]dimen/dimension_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- Elemente:
- Beispiel:
- XML-Datei gespeichert unter
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>
Mit dem folgenden Anwendungscode wird eine Dimension abgerufen:
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);In der folgenden Layout-XML werden Dimensionen auf Attribute angewendet:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
ID
Eine eindeutige Ressourcen-ID, die in XML definiert ist. Mithilfe des Namens, den Sie im Element <item>
angeben, erstellen die Android-Entwicklertools eine eindeutige Ganzzahl in der R.java
-Klasse Ihres Projekts, die Sie als Kennung für eine Anwendungsressourcen (z. B. eine View
in Ihrem UI-Layout) oder eine eindeutige Ganzzahl für die Verwendung in Ihrem Anwendungscode (z. B. eine ID für ein Dialogfeld oder einen Ergebniscode) verwenden können.
Hinweis: Eine ID ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie ID-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren. Außerdem verweist eine ID-Ressource nicht auf ein tatsächliches Ressourcenelement. Sie ist eine eindeutige ID, die Sie an andere Ressourcen anhängen oder in Ihrer Anwendung als eindeutige Ganzzahl verwenden können.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig.- Ressourcenreferenz:
-
In Java:
R.id.name
In XML:@[package:]id/name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- Elemente:
- Beispiel:
-
XML-Datei gespeichert unter
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>
Im folgenden Layout-Snippet wird die
"button_ok"
-ID für einButton
-Widget verwendet:<Button android:id="@id/button_ok" style="@style/button_style" />
Der Wert
android:id
enthält hier nicht das Pluszeichen in der ID-Referenz, da die ID, wie im vorherigenids.xml
-Beispiel definiert, bereits vorhanden ist. Wenn Sie eine ID für eine XML-Ressource mithilfe des Pluszeichens im Formatandroid:id="@+id/name"
angeben, bedeutet dies, dass die"name"
-ID noch nicht vorhanden ist. Sie wird erstellt.Als weiteres Beispiel wird im folgenden Code-Snippet die
"dialog_exit"
-ID als eindeutige Kennung für einen Dialog verwendet:Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);In derselben Anwendung wird die
"dialog_exit"
-ID beim Erstellen eines Dialogfelds verglichen: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; }
Ganzzahl
Eine in XML definierte Ganzzahl.
Hinweis: Eine Ganzzahl ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie Ganzzahlressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Dername
des<integer>
-Elements wird als Ressourcen-ID verwendet.- Ressourcenreferenz:
-
In Java:
R.integer.integer_name
In XML:@[package:]integer/integer_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- Elemente:
- Beispiel:
-
XML-Datei gespeichert unter
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>
Mit dem folgenden Anwendungscode wird eine Ganzzahl abgerufen:
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
Integer-Array
Ein Array von Ganzzahlen, die in XML definiert sind.
Hinweis: Ein Ganzzahlarray ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie Ganzzahl-Array-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Dername
des<integer-array>
-Elements wird als Ressourcen-ID verwendet.- kompilierter Ressourcentyp:
- Ressourcenzeiger auf ein Array von Ganzzahlen.
- Ressourcenreferenz:
-
In Java:
R.array.integer_array_name
In XML:@[package:]array/integer_array_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- Elemente:
- Beispiel:
- XML-Datei gespeichert unter
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>
Mit dem folgenden Anwendungscode wird das Ganzzahlarray abgerufen:
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
Eingegebenes Array
Ein TypedArray
in XML definiert. Damit kannst du ein Array anderer Ressourcen erstellen, z. B. Drawables. Das Array muss nicht homogen sein. Sie können also ein Array mit gemischten Ressourcentypen erstellen. Achten Sie aber darauf, welche Datentypen sich im Array befinden und wo sich die Datentypen befinden, damit Sie jedes Element ordnungsgemäß mit den get...()
-Methoden der TypedArray
-Klasse abrufen können.
Hinweis: Ein typisiertes Array ist eine einfache Ressource, auf die mit dem Wert im Attribut name
und nicht mit dem Namen der XML-Datei verwiesen wird. So können Sie typisierte Arrayressourcen mit anderen einfachen Ressourcen in einer XML-Datei unter einem <resources>
-Element kombinieren.
- Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Dername
des<array>
-Elements wird als Ressourcen-ID verwendet.- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
TypedArray
. - Ressourcenreferenz:
-
In Java:
R.array.array_name
In XML:@[package:]array/array_name
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- Elemente:
- Beispiel:
- XML-Datei gespeichert unter
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>
Mit dem folgenden Anwendungscode wird jedes Array abgerufen. Anschließend wird der erste Eintrag in jedem Array abgerufen:
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);