Dodaj zasoby aplikacji

Zasoby aplikacji, takie jak mapy bitowe i układy, są uporządkowane według typu w katalogu res/ każdego modułu. Możesz też dodać inne adresy URL, dostosowane do różnych urządzeń. i konfigurację, np. wersję bitmapy o wysokiej rozdzielczości, ekrany.

Android Studio pomaga dodawać nowe zasoby i alternatywne zasoby w kilku w zależności od typu zasobu, który chcesz dodać. Na tej stronie dowiesz się, , jak dodać podstawowe pliki zasobów, zmienić lokalizację zasobów oraz jak działa scalanie zasobów.

Na kolejnych stronach znajdziesz szczegółowe informacje o tym, jak utworzyć określonych typów zasobów:

Dowiedz się, jak odwoływać się do zasobów z aplikacji patrz kod Omówienie zasobów dotyczących aplikacji.

Dodaj plik zasobów XML

Chociaż linki do poprzednich stron opisują przepływy pracy, które są dostosowane do poszczególnych typu zasobu, możesz dodać dowolny plik zasobów XML, wykonując poniższe kroki:

  1. Kliknij docelowy moduł aplikacji w oknie Projekt w widok Android lub Projekt.

  2. Wybierz Plik > Nowe > plik zasobów Androida.

    Rysunek 1. Okno Nowy plik zasobów.

  3. Podaj szczegóły w oknie dialogowym:
    • Nazwa pliku: wpisz nazwę pliku XML (nie jest to wymagane, .xml).
    • Typ zasobu: wybierz typ zasobu, który chcesz utworzyć.
    • Element główny: w razie potrzeby wybierz główny element XML dla atrybutu . Niektóre typy zasobów obsługują tylko jeden typ elementu głównego. W zależności w wybranym typie zasobu, jego edytowanie może być niemożliwe.
    • Zbiór źródeł: wybierz zbiór źródłowy, w którym chcesz zapisać plik.
    • Nazwa katalogu: katalog musi mieć konkretną nazwę. do kwalifikatorów typu i konfiguracji. Nie edytuj, chyba że chcesz dodać kwalifikatory konfiguracji do ręcznie (użyj listy Dostępne kwalifikatory).
    • Dostępne kwalifikatory: nie musisz ręcznie dodawać kwalifikatorów konfiguracji. w nazwie katalogu, możesz je dodać, wybierając kwalifikator z polecenia i kliknij Dodaj .
  4. Po dodaniu wszystkich kwalifikatorów kliknij OK.

Wskazówka: aby otworzyć uproszczoną wersję okna Nowy plik zasobów, zgodnie z typem zasobu, który chcesz dodać, kliknij prawym przyciskiem myszy katalogu zasobów w folderze res i wybierz Nowe > type-name plik zasobów.

Wbudowane złożone zasoby XML

Niektóre złożone zasoby wymagają wielu plików XML zasobów. Na przykład animowany obiekt rysowalny wektorowy zawiera obiekt rysowalny wektorowo oraz obiekt animowany i wymaga co najmniej trzech plików XML.

W tym przykładzie możesz utworzyć i zachować te 3 osobne pliki XML, jeśli chcesz wykorzystać ponownie co najmniej jeden . Jeśli jednak pliki XML są używane tylko w przypadku tego animowanego wektora rysunkowego, możesz zamiast tego użyć formatu zasobów wbudowanych, dostarczanych w narzędziu Android Asset Narzędzie do tworzenia opakowań (AAPT). Dzięki AAPT możesz zdefiniować wszystkie 3 zasoby w jednym pliku XML . Więcej informacji znajdziesz w artykule o wbudowanym złożonym kodzie XML. .

Dodaj katalog zasobów

Aby dodać nowy katalog zasobów, wykonaj te czynności:

  1. W oknie Projekt kliknij docelowy moduł aplikacji.

  2. Wybierz Plik > Nowe > Katalog zasobów Androida.

    Rysunek 2. Okno New Resource Directory (Nowy katalog zasobów).

  3. Podaj szczegóły w oknie dialogowym:
    • Nazwa katalogu: katalog musi mieć konkretną nazwę. do typu zasobu i kombinacji kwalifikatorów konfiguracji. Przeciwwskazania go edytuj, chyba że chcesz dodać kwalifikatory konfiguracji do pola ręcznie (użyj listy Dostępne kwalifikatory).
    • Typ zasobu:wybierz typ zasobu, który ma zawierać katalog.
    • Zbiór źródeł: wybierz zbiór źródłowy, w którym chcesz umieścić katalog.
    • Dostępne kwalifikatory: nie musisz ręcznie dodawać kwalifikatorów konfiguracji. w nazwie katalogu, możesz je dodać, wybierając kwalifikator z polecenia i kliknij Dodaj .
  4. Po dodaniu wszystkich kwalifikatorów kliknij OK.

Zmień katalog zasobów

Domyślnie Twoje zasoby znajdują się w module-name/src/source-set-name/res/ Na przykład zasoby głównego zbioru źródłowego modułu znajdują się w języku: src/main/res/, a zasoby zbioru źródłowego do debugowania znajdują się w folderze src/debug/res/.

Możesz jednak zmienić te ścieżki na inne lokalizacja (w stosunku do pliku build.gradle) za pomocą właściwości res.srcDirs. w bloku sourceSets. Na przykład:

Odlotowe

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")
        }
    }
}

Możesz też określić wiele katalogów zasobów dla jednego zbioru źródłowego, narzędzia do kompilacji, które je ze sobą łączą. Na przykład:

Odlotowe

android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

Kotlin

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

Więcej informacji: zbiory źródłowe.

Scalanie zasobów

Zasoby w ostatecznym pliku aplikacji mogą pochodzić z 3 źródeł:

  • Główny zbiór źródeł (zwykle znajduje się w regionie src/main/res/)
  • Zbiory źródłowe kompilacji wariantów
  • Biblioteki Androida (AAR)

Gdy wszystkie zasoby z każdego zbioru źródłowego lub biblioteki są unikalne, dodane do ostatecznej wersji aplikacji. Zasób jest uważany za unikalny, jeśli jego nazwa to unikalny w ramach zarówno katalog typu zasobu oraz kwalifikator zasobów (jeśli został określony).

Jeśli istnieją co najmniej 2 pasujące wersje tego samego zasobu, wtedy tylko jedna wersja umieszcza się w ostatecznej wersji aplikacji. Wybór narzędzi do kompilacji wersję do zachowania na podstawie tej kolejności (najwyższy priorytet) po lewej):

wariant kompilacji > typ kompilacji > smak produktu > główny zbiór źródeł > zależności bibliotek
.

Jeśli na przykład główny zestaw źródłowy zawiera:

  • res/layout/example.xml
  • res/layout-land/example.xml

Typ kompilacji do debugowania zawiera:

  • res/layout/example.xml

Następnie ostatnia aplikacja zawiera res/layout/example.xml z typu kompilacji do debugowania oraz res/layout-land/example.xml z głównego zbioru źródłowego.

Jeśli jednak Twoja konfiguracja kompilacji określa wielu folderów zasobów dla danego zbioru źródeł i występują konflikty między tymi źródłami, komunikat o błędzie i scalanie kończy się niepowodzeniem, ponieważ każdy katalog zasobów ma taki sam .