Zasoby aplikacji, takie jak mapy bitowe i układy, są uporządkowane w katalogach res/
poszczególnych modułów. Możesz też dodać alternatywne wersje każdego pliku zoptymalizowane pod kątem różnych konfiguracji urządzeń, np. wersję mapy bitowej w wysokiej rozdzielczości na potrzeby ekranów o dużej gęstości.
Android Studio pomaga dodawać nowe zasoby i zasoby alternatywne na kilka sposobów w zależności od typu zasobu, który chcesz dodać. Na tej stronie dowiesz się, jak dodawać podstawowe pliki zasobów, zmienić ich lokalizację i sposób scalania zasobów.
Szczegółowe informacje o tworzeniu określonych typów zasobów znajdziesz na tych stronach:
- Informacje o tym, jak dodać pliki układu, znajdziesz w artykule Tworzenie interfejsu przy użyciu edytora układów.
- Jeśli chcesz dodać pliki tekstowe, przeczytaj sekcję Lokalizowanie interfejsu za pomocą edytora tłumaczeń.
- Informacje o dodawaniu map bitowych znajdziesz w artykule na temat tworzenia ikon aplikacji w Image Asset Studio.
- Aby dodać pliki SVG, przeczytaj artykuł Dodawanie grafiki wektorowej o wielu gęstościach.
Informacje o odwoływaniu się do zasobów w kodzie aplikacji znajdziesz w sekcji Omówienie zasobów aplikacji.
Dodaj plik zasobów XML
Poprzednie linki do stron opisują przepływy pracy, które są dostosowane do poszczególnych typów zasobów. Możesz jednak dodać dowolny plik zasobów XML, wykonując te czynności:
Kliknij docelowy moduł aplikacji w oknie Projekt w widoku Android lub Projekt.
- Wybierz Plik > Nowy > Plik zasobów Androida.
- Podaj informacje w oknie:
- Nazwa pliku: wpisz nazwę pliku XML (sufiks
.xml
nie jest wymagany). - Typ zasobu: wybierz typ zasobu, który chcesz utworzyć.
- Element główny: w razie potrzeby wybierz główny element XML dla pliku. Niektóre typy zasobów obsługują tylko jeden typ elementu głównego. W zależności od wybranego typu zasobu nie można go edytować.
- Zbiór źródeł: wybierz zbiór źródłowy, w którym chcesz zapisać plik.
- Nazwa katalogu: nazwa katalogu musi odnosić się do typu zasobu i kwalifikatorów konfiguracji. Nie zmieniaj go, chyba że chcesz ręcznie dodać kwalifikatory konfiguracji do nazwy katalogu (zamiast tego użyj dostępnych kwalifikatorów).
- Dostępne kwalifikatory: zamiast ręcznie dodawać kwalifikatory konfiguracji w nazwie katalogu, możesz je dodać, wybierając kwalifikator z listy i klikając Dodaj .
- Nazwa pliku: wpisz nazwę pliku XML (sufiks
- Po dodaniu wszystkich kwalifikatorów kliknij OK.
Wskazówka: aby otworzyć uproszczoną wersję okna Nowy plik zasobów specyficzną dla typu zasobu, który chcesz dodać, kliknij prawym przyciskiem myszy istniejący katalog zasobów w folderze res i wybierz Nowy > Plik zasobu type-name.
Wbudowane zasoby złożone XML
Niektóre złożone zasoby wymagają wielu plików XML. Na przykład element rysowalny w formacie animowanym zawiera obiekt rysowalny w formacie wektorowym i obiekt animacji, a także wymaga co najmniej 3 plików XML.
W tym przykładzie możesz utworzyć i zachować 3 osobne pliki XML, jeśli chcesz użyć ponownie co najmniej jednego z nich. Jeśli jednak pliki XML są używane tylko na potrzeby tego animowanego elementu rysowalnego w formacie wektorowym, możesz użyć formatu zasobów wbudowanych w narzędziu Android Asset Packaging Tool (AAPT). AAPT pozwala zdefiniować wszystkie 3 zasoby w jednym pliku XML. Więcej informacji znajdziesz w artykule o wbudowaniu złożonych zasobów XML.
Dodaj katalog zasobów
Aby dodać nowy katalog zasobów, wykonaj te czynności:
W oknie Projekt kliknij docelowy moduł aplikacji.
- Wybierz File > New > Android resource directory (Plik > Nowy > Katalog zasobów Androida).
- Podaj informacje w oknie:
- Nazwa katalogu: nazwa katalogu musi odpowiadać typowi zasobu i kombinacji kwalifikatorów konfiguracji. Nie edytuj go, chyba że chcesz ręcznie dodać kwalifikatory konfiguracji do nazwy katalogu (zamiast tego użyj dostępnych kwalifikatorów).
- Typ zasobu:wybierz typ zasobu, który ma zawierać katalog.
- Zbiór źródłowy: wybierz zbiór źródłowy, w którym chcesz umieścić katalog.
- Dostępne kwalifikatory: zamiast ręcznie dodawać kwalifikatory konfiguracji w nazwie katalogu, możesz je dodać, wybierając kwalifikator z listy i klikając Dodaj .
- Po dodaniu wszystkich kwalifikatorów kliknij OK.
Zmień katalog zasobów
Domyślnie zasoby znajdują się w regionie module-name/src/source-set-name/res/
.
Na przykład zasoby głównego zbioru źródłowego Twojego modułu znajdują się w lokalizacji src/main/res/
, a zasoby zestawu źródłowego do debugowania – src/debug/res/
.
Możesz jednak zmienić te ścieżki na dowolne inne lokalizacje (w stosunku do pliku build.gradle
) za pomocą właściwości res.srcDirs
w bloku sourceSets
. Na przykład:
Odlotowy
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, a następnie scalać je narzędzia do kompilacji. Na przykład:
Odlotowy
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Kotlin
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
Więcej informacji znajdziesz w artykule o zbiorach źródłowych.
Scalanie zasobów
Zasoby w końcowym pliku aplikacji mogą pochodzić z 3 źródeł:
- Główny zestaw źródeł (zwykle znajdujący się w regionie
src/main/res/
) - Utwórz zbiory źródłowe wariantów
- Biblioteki Androida (AAR)
Gdy wszystkie zasoby z każdego zbioru lub biblioteki są unikalne, są dodawane do ostatecznej aplikacji. Zasób jest uważany za unikalny, jeśli jego nazwa pliku jest unikalna zarówno w katalogu typu zasobu, jak i w kwalifikatorze zasobów (jeśli została zdefiniowana).
Jeśli istnieją co najmniej 2 pasujące wersje tego samego zasobu, w końcowej aplikacji pojawia się tylko jedna z nich. Narzędzia do kompilacji wybierają wersję do zachowania w tej kolejności (najwyższy priorytet po lewej):
Wariant kompilacji > Typ kompilacji > Typ usługi > główny zestaw źródłowy > Zależności biblioteki
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
Ostateczna aplikacja zawiera res/layout/example.xml
z typu kompilacji do debugowania i res/layout-land/example.xml
z głównego zbioru źródłowego.
Jeśli jednak Twoja konfiguracja kompilacji określa wiele folderów zasobów dla danego zbioru źródłowego i wystąpią konflikty między tymi źródłami, wystąpi błąd i scalenie się nie uda, ponieważ każdy katalog zasobów ma ten sam priorytet.