Anwendungsressourcen wie Bitmaps und Layouts sind im Verzeichnis res/
jedes Moduls in typspezifischen Verzeichnissen organisiert. Sie können auch alternative Versionen jeder Datei hinzufügen, die für verschiedene Gerätekonfigurationen optimiert sind, z. B. eine hochauflösende Version einer Bitmap für Bildschirme mit hoher Dichte.
Mit Android Studio können Sie neue Ressourcen und alternative Ressourcen auf verschiedene Weise hinzufügen, abhängig vom Typ der Ressource, die Sie hinzufügen möchten. Auf dieser Seite wird beschrieben, wie Sie grundlegende Ressourcendateien hinzufügen, den Speicherort Ihrer Ressourcen ändern und wie die Ressourcenzusammenführung funktioniert.
Auf den folgenden Seiten finden Sie Details zum Erstellen bestimmter Ressourcentypen:
- Informationen zum Hinzufügen von Layoutdateien finden Sie unter UI mit Layout-Editor erstellen.
- Informationen zum Hinzufügen von Stringdateien finden Sie unter UI mit dem Translations Editor lokalisieren.
- Informationen zum Hinzufügen von Bitmaps finden Sie unter App-Symbole mit Image Asset Studio erstellen.
- Informationen zum Hinzufügen von SVG-Dateien finden Sie unter Vektorgrafiken mit mehreren Punktdichten hinzufügen.
Informationen dazu, wie Sie auf die Ressourcen aus Ihrem App-Code verweisen, finden Sie unter Übersicht über Anwendungsressourcen.
XML-Ressourcendatei hinzufügen
Die vorstehenden Seitenlinks beschreiben Workflows, die an die einzelnen Ressourcentypen angepasst sind. Sie können aber auch eine beliebige XML-Ressourcendatei hinzufügen. Gehen Sie dazu so vor:
Klicken Sie im Fenster Projekt in der Ansicht Android oder Projekt auf das Ziel-App-Modul.
- Wählen Sie Datei > Neu > Android-Ressourcendatei aus.
- Geben Sie die Details im Dialogfeld ein:
- Dateiname: Geben Sie den Namen der XML-Datei ein. Das Suffix
.xml
ist nicht erforderlich. - Ressourcentyp: Wählen Sie den Ressourcentyp aus, den Sie erstellen möchten.
- Root-Element: Wählen Sie gegebenenfalls das XML-Stammelement für die Datei aus. Einige Ressourcentypen unterstützen nur einen Typ von Stammelement. Je nach ausgewähltem Ressourcentyp kann dieser Bereich möglicherweise nicht bearbeitet werden.
- Quellsatz: Wählen Sie den Quellsatz aus, in dem die Datei gespeichert werden soll.
- Verzeichnisname: Der Name des Verzeichnisses muss so benannt werden, dass sie dem Ressourcentyp und den Konfigurationsqualifizierern entspricht. Bearbeiten Sie dies nur, wenn Sie dem Verzeichnisnamen manuell Konfigurationsqualifizierer hinzufügen möchten. Verwenden Sie stattdessen Verfügbare Qualifizierer.
- Verfügbare Qualifier: Anstatt Konfigurationsqualifizierer manuell in den Verzeichnisnamen aufzunehmen, wählen Sie einen Qualifier aus der Liste aus und klicken Sie auf Hinzufügen .
- Dateiname: Geben Sie den Namen der XML-Datei ein. Das Suffix
- Nachdem Sie alle gewünschten Qualifier hinzugefügt haben, klicken Sie auf OK.
Tipp:Zum Öffnen einer vereinfachten Version des Dialogfelds Neue Ressourcendatei für den Ressourcentyp, den Sie hinzufügen möchten, mit der rechten Maustaste auf ein vorhandenes Ressourcenverzeichnis im Ordner res und wählen Sie Neu > type-name-Ressourcendatei aus.
Komplexe XML-Ressourcen inline einbinden
Einige komplexe Ressourcen erfordern mehrere XML-Ressourcendateien. Ein animiertes Vektor-Drawable hat beispielsweise ein Vektor-Drawable-Objekt und ein Animationsobjekt. Außerdem sind mindestens drei XML-Dateien erforderlich.
In diesem Beispiel können Sie die drei separaten XML-Dateien erstellen und behalten, wenn Sie eine oder mehrere davon wiederverwenden müssen. Wenn die XML-Dateien jedoch nur für dieses animierte Vektor-Drawable verwendet werden, kannst du stattdessen das Inline-Ressourcenformat aus dem Android Asset Packaging Tool (AAPT) verwenden. Mit AAPT können Sie alle drei Ressourcen in einer XML-Datei definieren. Weitere Informationen finden Sie unter Komplexe XML-Ressourcen inline inline einbinden.
Ressourcenverzeichnis hinzufügen
So fügen Sie ein neues Ressourcenverzeichnis hinzu:
Klicken Sie im Fenster Projekt auf das Ziel-App-Modul.
- Wählen Sie File > New > Android Resource Directory aus.
- Geben Sie im Dialogfeld die erforderlichen Informationen ein:
- Verzeichnisname: Der Name des Verzeichnisses muss so benannt werden, dass sie für den Ressourcentyp und die Kombination der Konfigurationsqualifizierer spezifisch ist. Bearbeiten Sie dies nur, wenn Sie dem Verzeichnisnamen manuell Konfigurationsqualifizierer hinzufügen möchten. Verwenden Sie stattdessen Verfügbare Qualifier.
- Ressourcentyp: Wählen Sie den Ressourcentyp aus, den das Verzeichnis enthalten soll.
- Quellsatz:Wählen Sie die Quellgruppe aus, in der sich das Verzeichnis befinden soll.
- Verfügbare Qualifizierer:Anstatt Konfigurationsqualifizierer manuell in den Verzeichnisnamen aufzunehmen, wählen Sie einen Qualifizierer aus der Liste aus und klicken Sie auf Hinzufügen .
- Nachdem Sie alle gewünschten Qualifier hinzugefügt haben, klicken Sie auf OK.
Ressourcenverzeichnis ändern
Standardmäßig befinden sich Ihre Ressourcen in module-name/src/source-set-name/res/
.
Ressourcen für den Hauptquellsatz Ihres Moduls befinden sich beispielsweise in src/main/res/
und Ressourcen für den Quellsatz für die Fehlerbehebung in src/debug/res/
.
Sie können diese Pfade jedoch mit dem Attribut res.srcDirs
im sourceSets
-Block in einen beliebigen anderen Speicherort (relativ zur Datei build.gradle
) ändern. Beispiele:
Groovig
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
Kotlin
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
Sie können auch mehrere Ressourcenverzeichnisse für einen Quellsatz angeben und diese dann von den Build-Tools zusammenführen. Beispiele:
Groovig
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Kotlin
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
Weitere Informationen finden Sie unter Quellensätze.
Ressourcen zusammenführen
Ressourcen in der endgültigen Anwendungsdatei können aus drei Quellen stammen:
- Der Hauptquellsatz (in der Regel in
src/main/res/
) - Varianten-Quellsätze erstellen
- Android-Bibliotheken (AAE)
Wenn alle Ressourcen aus jedem Quellsatz oder jeder Bibliothek eindeutig sind, werden sie alle der endgültigen Anwendung hinzugefügt. Eine Ressource gilt als eindeutig, wenn ihr Dateiname sowohl im Verzeichnis Ressourcentyp als auch im Ressourcenqualifizierer (falls definiert) eindeutig ist.
Wenn es zwei oder mehr übereinstimmende Versionen derselben Ressource gibt, ist nur eine Version in der endgültigen Anwendung enthalten. Die Build-Tools wählen anhand der folgenden Prioritätsreihenfolge aus, welche Version beibehalten werden soll (höchste Priorität links):
Build-Variante > Build-Typ > Produkt-Flavor > Hauptquellsatz > Bibliotheksabhängigkeiten
Wenn der Hauptquellsatz beispielsweise Folgendes enthält:
res/layout/example.xml
res/layout-land/example.xml
Der Build-Typ für die Fehlerbehebung enthält Folgendes:
res/layout/example.xml
Die endgültige Anwendung enthält dann res/layout/example.xml
aus dem Build-Typ zur Fehlerbehebung und res/layout-land/example.xml
aus dem Hauptquellsatz.
Wenn in Ihrer Build-Konfiguration jedoch mehrere Ressourcenordner für einen bestimmten Quellsatz angegeben sind und es Konflikte zwischen diesen Quellen gibt, tritt ein Fehler auf und die Zusammenführung schlägt fehl, da jedes Ressourcenverzeichnis die gleiche Priorität hat.