Weitere Ressourcentypen

Auf dieser Seite werden die folgenden Ressourcentypen definiert, die Sie externalisieren können:

Boolescher Wert
XML-Ressource, die einen booleschen Wert enthält.
Farbe
XML-Ressource mit einem Farbwert (hexadezimal).
Dimension
XML-Ressource, die einen Dimensionswert (mit einer Maßeinheit) enthält.
ID
XML-Ressource, die eine eindeutige Kennzeichnung für Anwendungsressourcen und Komponenten.
Ganzzahl
XML-Ressource, die einen Ganzzahlwert enthält.
Integer-Array
XML-Ressource, die ein Array von Ganzzahlen bereitstellt.
Typiertes Array
XML-Ressource, die ein TypedArray bereitstellt, das Sie verwenden können für ein Array von Drawables).

Boolescher Wert

Ein in XML definierter boolescher Wert.

Hinweis:Ein boolescher Wert ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können boolesche Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren, unter einem <resources>-Element.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Der name des <bool>-Elements wird als Ressource verwendet ID.
Ressourcenreferenz:
In Java: R.bool.bool_name
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. Dies ist der Stammknoten.

Keine Attribute.

<bool>
Boolescher Wert: true oder false.

Attribute:

name
String. Ein Name für den booleschen Wert. Diese 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 eines Alphakanals festgelegt. Sie können eine Farbressource verwenden an jedem Ort, der einen hexadezimalen Farbwert akzeptiert. Sie können eine Farbressource auch verwenden, wenn ein Drawable-Ressource wird in XML erwartet, z. B. android:drawable="@color/green".

Der Wert beginnt immer mit einem Rautezeichen (#), gefolgt vom Alpha-Rot-Grün-Blau-Informationen in einem der folgenden Formate:

  • RGB
  • ARGB
  • RRGGBB
  • #AARRGGBB

Hinweis:Eine Farbe ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können Farbressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren. unter einem <resources>-Element.

Dateispeicherort:
res/values/colors.xml
Der Dateiname ist beliebig. Der name des <color>-Elements wird als Ressourcen-ID.
Ressourcenreferenz:
In Java: R.color.color_name
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. Dies ist der Stammknoten.

Keine Attribute.

<color>
Eine Farbe, die als hexadezimal ausgedrückt wird.

Attribute:

name
String. Ein Name für die Farbe. Diese 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);

Die folgende Layout-XML wendet die Farbe auf ein Attribut an:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/translucent_red"
    android:text="Hello"/>

Dimension

Ein in XML definierter Dimensionswert. Eine Dimension durch eine Zahl gefolgt von einer Maßeinheit wie 10px, 2in oder 5sp angegeben wird. Die folgenden Maßeinheiten werden von Android unterstützt:

dp
Dichte-unabhängige Pixel: eine abstrakte Einheit, die auf der physischen Dichte eines Bildschirm. Diese Einheiten beziehen sich auf einen Bildschirm mit 160 dpi, bei dem 1 dp in etwa gleich ist. auf 1 Pixel. Bei Bildschirmen mit höherer Punktdichte wird die Anzahl der zum Zeichnen von 1 dp verwendeten Pixel vertikal skaliert um einen für die Bildschirm-DPI geeigneten Faktor.

Auf einem Bildschirm mit geringerer Dichte der für 1 dp verwendeten Pixel werden verkleinert. Das Verhältnis von dps zu Pixel ändert sich mit der Bildschirmdichte. aber nicht unbedingt im direkten Verhältnis. Eine Lösung ist die Verwendung von dp-Einheiten anstelle von px-Einheiten. , um die Größe der Ansicht in Ihrem Layout an die jeweilige Bildschirmdichte anzupassen. Sie sorgt für Einheitlichkeit der realen Größen Ihrer UI-Elemente auf verschiedenen Geräte.

sp
Maßstabunabhängige Pixel: Dies entspricht der dp-Einheit, wird aber auch nach der Schriftart des Nutzers skaliert. Größeneinstellung. Es wird empfohlen, diesen Anzeigenblock beim Festlegen von Schriftgrößen zu verwenden, da er dann entsprechend angepasst wird. sowohl für die Bildschirmdichte als auch für die Präferenzen des Nutzers.
pt
Punkte: je 1/72 Zoll je nach Bildschirmgröße bei einer Bildschirmdichte von 72 dpi.
px
Pixel: entspricht den tatsächlichen Pixeln auf dem Bildschirm Wir raten davon ab, diese Einheit zu verwenden, kann die tatsächliche Darstellung je nach Gerät variieren. Verschiedene Geräte können eine unterschiedliche Pixelanzahl haben pro Zoll und möglicherweise mehr oder weniger Pixel insgesamt auf dem Bildschirm verfügbar sind.
mm
Millimeter: basierend auf der physischen Größe des Bildschirms.
in
Zoll: je nach der physischen Größe des Bildschirms.

Hinweis:Eine Dimension ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können Dimensionsressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren. unter einem <resources>-Element.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Der name des <dimen>-Elements wird als Ressourcen-ID.
Ressourcenreferenz:
In Java: R.dimen.dimension_name
XML: @[package:]dimen/dimension_name
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen
        name="dimension_name"
        >dimension</dimen>
</resources>
Elemente:
<resources>
Erforderlich. Dies ist der Stammknoten.

Keine Attribute.

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

Attribute:

name
String. Ein Name für die Dimension. Diese 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. Unter Verwendung des Namens, den Sie in der <item> angeben -Element ist, erstellen die Android-Entwicklertools eine eindeutige Ganzzahl in der R.java-Klasse Ihres Projekts, die Sie als Kennung für eine Anwendungsressource, z. B. View in Ihrem UI-Layout, oder eine eindeutige Ganzzahl zur Verwendung in Ihrem Anwendungscode, z. B. eine ID für ein Dialogfeld oder eine Ergebniscode.

Hinweis: Eine ID ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als ID-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren, unter einem <resources>-Element. Außerdem verweist eine ID-Ressource nicht auf ein tatsächliches Ressourcenelement: Dies ist eine eindeutige ID, die Sie an andere Ressourcen anhängen oder als eindeutige Ganzzahl in Ihrer Anwendung.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig.
Ressourcenreferenz:
In Java: R.id.name
XML: @[package:]id/name
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="id_name" />
</resources>
Elemente:
<resources>
Erforderlich. Dies ist der Stammknoten.

Keine Attribute.

<item>
Definiert eine eindeutige ID. Benötigt keinen Wert, 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 android:id-Wert hier enthält nicht das Pluszeichen in der ID-Referenz. da die ID bereits vorhanden ist, wie im vorherigen ids.xml-Beispiel definiert. Wenn Sie eine ID einer XML-Ressource mithilfe des Pluszeichens im Format android:id="@+id/name", Das bedeutet, dass die "name"-ID noch nicht vorhanden ist und erstellt wird.

Ein weiteres Beispiel: Im folgenden Code-Snippet wird die "dialog_exit"-ID als eindeutige Kennung verwendet. für ein Dialogfeld:

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 verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können Ganzzahlen-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren. unter einem <resources>-Element.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Der name des <integer>-Elements wird als Ressourcen-ID.
Ressourcenreferenz:
In Java: R.integer.integer_name
XML: @[package:]integer/integer_name
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer
        name="integer_name"
        >integer</integer>
</resources>
Elemente:
<resources>
Erforderlich. Dies ist der Stammknoten.

Keine Attribute.

<integer>
Eine Ganzzahl.

Attribute:

name
String. Ein Name für die Ganzzahl. Diese 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>

Der folgende Anwendungscode ruft eine Ganzzahl ab:

Kotlin

val maxSpeed: Int = resources.getInteger(R.integer.max_speed)

Java

Resources res = getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);

Ganzzahlarray

Ein Array von Ganzzahlen, die in XML definiert sind.

Hinweis:Ein Ganzzahlarray ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können Integer-Array-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren, unter einem <resources>-Element.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Der name des <integer-array>-Elements wird als Ressourcen-ID.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf ein Array von Ganzzahlen.
Ressourcenreferenz:
In Java: R.array.integer_array_name
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. Dies 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 Ressource verwendet, ID, um auf das Array zu verweisen.
<item>
Eine Ganzzahl. Der Wert kann ein Verweis auf einen anderen Ganzzahlressource. 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>

Der folgende Anwendungscode ruft das Ganzzahlarray ab:

Kotlin

val bits: IntArray = resources.getIntArray(R.array.bits)

Java

Resources res = getResources();
int[] bits = res.getIntArray(R.array.bits);

Eingegebenes Array

Ein in XML definierter TypedArray. Sie können um ein Array mit anderen Ressourcen wie Drawables zu erstellen. Das Array muss nicht homogen sein, Sie können also ein Array mit gemischten Ressourcentypen erstellen, aber wissen, was und wo sich die Datentypen im Array befinden, damit Sie jedes Element mit den get...()-Methoden der Klasse TypedArray.

Hinweis:Ein typisiertes Array ist eine einfache Ressource, auf die verwiesen wird. Verwenden Sie den im Attribut name angegebenen Wert und nicht den Namen der XML-Datei. Als Sie können typisierte Array-Ressourcen mit anderen einfachen Ressourcen in einer XML-Datei kombinieren. unter einem <resources>-Element.

Dateispeicherort:
res/values/filename.xml
Der Dateiname ist beliebig. Der name des <array>-Elements wird als Ressourcen-ID.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf eine TypedArray.
Ressourcenreferenz:
In Java: R.array.array_name
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. Dies 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 Ressource verwendet, ID, um auf das Array zu verweisen.
<item>
Eine allgemeine 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>

Der folgende Anwendungscode ruft jedes Array ab und ruft dann den ersten Eintrag in jedem Array ab:

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