Junior
Czym są zasoby w Androidzie i jakie dane można w nich przechowywać?
sobes.tech AI
Odpowiedź od AI
Zasoby w Androidzie to dane zewnętrzne, które są wykorzystywane przez aplikację, ale nie są bezpośrednio zawarte w kodzie. Są oddzielone od logiki aplikacji i przechowywane w podkatalogach folderu res w katalogu głównym projektu. Android zapewnia zestaw narzędzi do dostępu i zarządzania tymi zasobami.
Zasoby służą do:
- Lokalizacji aplikacji (obsługa różnych języków).
- Dostosowania do różnych rozmiarów i rozdzielczości ekranów.
- Oddzielenia projektu od logiki.
- Uproszczenia aktualizacji interfejsu.
W zasobach można przechowywać następujące typy danych:
- Drawable: Różne elementy graficzne, takie jak obrazy (PNG, JPEG, GIF), definicje XML kształtów, przełączniki itp. Przechowywane w podkatalogach
drawable.<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#FF0000"/> <corners android:radius="10dp"/> </shape> - Layout: Pliki XML opisujące strukturę interfejsu użytkownika Activity, Fragment lub View. Przechowywane w podkatalogach
layout.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Witaj, świecie!"/> </LinearLayout> - Mipmap: Optymalizowane obrazy ikon aplikacji o różnych gęstościach. Preferowane do ikon niż
drawable. Przechowywane w podkatalogachmipmap(np.mipmap-hdpi,mipmap-xhdpi). - String: Wartości tekstowe używane w aplikacji. Umożliwiają łatwą lokalizację tekstu. Przechowywane w plikach XML w podkatalogach
values(np.values/strings.xml).<resources> <string name="app_name">Moja aplikacja</string> <string name="welcome_message">Witamy!</string> </resources> - Style: Definicje stylów dla widoków. Umożliwiają centralne zarządzanie atrybutami wyglądu. Przechowywane w plikach XML w podkatalogach
values(np.values/styles.xml).<resources> <style name="MyTextViewTextAppearance" parent="android:TextAppearance.Medium"> <item name="android:textColor">#000000</item> <item name="android:textStyle">bold</item> </style> </resources> - Theme: Definicje motywów, które są stosowane do całej Activity lub aplikacji. Dziedziczą po stylach. Przechowywane w plikach XML w podkatalogach
values. - Array: Tablice wartości tekstowych, liczb całkowitych lub odwołań do zasobów. Przechowywane w plikach XML w podkatalogach
values.<resources> <string-array name="planets_array"> <item>Merkury</item> <item>Wenus</item> <item>Ziemia</item> <item>Mars</item> </string-array> </resources> - Color: Definicje kolorów w formacie szesnastkowym lub odwołania do innych kolorów. Przechowywane w plikach XML w podkatalogach
values(np.values/colors.xml).<resources> <color name="colorPrimary">#008577</color> <color name="colorAccent">#03DAC5</color> </resources> - Dimension: Definicje rozmiarów, takich jak marginesy, paddingi, rozmiary czcionek itp., z jednostkami miary (dp, sp, pt, px, mm, in). Przechowywane w plikach XML w podkatalogach
values(np.values/dimens.xml).<resources> <dimen name="margin_small">8dp</dimen> <dimen name="font_size_medium">16sp</dimen> </resources> - Raw: Dowolne pliki w formacie surowym (dźwięk, wideo, pliki tekstowe itp.). Dostęp przez strumień wejściowy. Przechowywane w podkatalogach
raw. - XML: Dowolne pliki XML, które można analizować w aplikacji (np. pliki konfiguracyjne). Przechowywane w podkatalogach
xml.
Dostęp do zasobów odbywa się przez automatycznie generowaną klasę R. Na przykład, aby uzyskać dostęp do zasobu tekstowego app_name:
// Java
String appName = getResources().getString(R.string.app_name);
// Kotlin
val appName = resources.getString(R.string.app_name)
Użycie zasobów pozwala na tworzenie elastycznych i łatwych do utrzymania aplikacji Android.