App-Ressourcen hinzufügen

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 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:

  1. Klicken Sie im Fenster Projekt in der Ansicht Android oder Projekt auf das Ziel-App-Modul.

  2. Wählen Sie Datei > Neu > Android-Ressourcendatei aus.

    Abbildung 1: Dialogfeld Neue Ressourcendatei.

  3. 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 .
  4. 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:

  1. Klicken Sie im Fenster Projekt auf das Ziel-App-Modul.

  2. Wählen Sie File > New > Android Resource Directory aus.

    Abbildung 2: Dialogfeld Neues Ressourcenverzeichnis.

  3. 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 .
  4. 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:

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.