Weitere Ressourcentypen

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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<bool>
Ein boolescher Wert: true oder false.

Attribute:

name
String Ein Name für den booleschen Wert. Wird als Ressourcen-ID verwendet.
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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<color>
Eine Farbe im Hexadezimalformat.

Attribute:

name
String Ein Name für die Farbe. Wird als Ressourcen-ID verwendet.
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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<dimen>
Eine Dimension, die durch eine Gleitkommazahl gefolgt von einer Maßeinheit (dp, sp, pt, px, mm, in) dargestellt wird.

Attribute:

name
String Ein Name für die Dimension. Wird als Ressourcen-ID verwendet.
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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<item>
Definiert eine eindeutige ID. Nimmt keinen Wert an, nur Attribute.

Attribute:

type
Muss "id" sein.
name
String Ein eindeutiger Name für die ID.
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 ein Button-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 vorherigen ids.xml-Beispiel definiert, bereits vorhanden ist. Wenn Sie eine ID für eine XML-Ressource mithilfe des Pluszeichens im Format android: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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<integer>
Eine Ganzzahl.

Attribute:

name
String Ein Name für die Ganzzahl. Wird als Ressourcen-ID verwendet.
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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<integer-array>
Definiert ein Array von Ganzzahlen. Enthält ein oder mehrere untergeordnete <item>-Elemente.

Attribute:

android:name
String Ein Name für das Array. Dieser Name wird als Ressourcen-ID verwendet, um auf das Array zu verweisen.
<item>
Eine Ganzzahl. Der Wert kann ein Verweis auf eine andere Ganzzahlressource sein. Muss einem <integer-array>-Element untergeordnet sein.

Keine Attribute.

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. Der name 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:
<resources>
Erforderlich. Das ist der Stammknoten.

Keine Attribute.

<array>
Definiert ein Array. Enthält ein oder mehrere untergeordnete <item>-Elemente.

Attribute:

android:name
String Ein Name für das Array. Dieser Name wird als Ressourcen-ID verwendet, um auf das Array zu verweisen.
<item>
Eine generische Ressource. Der Wert kann ein Verweis auf eine Ressource oder ein einfacher Datentyp sein. Muss einem <array>-Element untergeordnet sein.

Keine Attribute.

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);