Na tej stronie znajdują się następujące typy zasobów, które można udostępnić na zewnątrz:
- Wartość logiczna
- Zasób XML z wartością logiczną.
- Kolor
- Zasób XML z wartością koloru (kolorem szesnastkowym).
- Wymiar
- Zasób XML, który zawiera wartość wymiaru (z jednostką miary).
- ID
- Zasób XML, który zapewnia unikalny identyfikator zasobów aplikacji oraz
- Liczba całkowita
- Zasób XML z wartością całkowitą.
- Tablica całkowita
- Zasób XML zawierający tablicę liczb całkowitych.
- Tablica z typem
- Zasób XML udostępniający plik
TypedArray(który możesz użyć dla tablicy elementów, które można narysować.
Wartość logiczna
Wartość logiczna zdefiniowana w pliku XML.
Uwaga: wartość logiczna to prosty zasób, do którego się odwołuje się
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby logiczne z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Jako zasób elementu
<bool>używany jest atrybutnameID. - odniesienie do zasobu:
-
W języku Java:
R.bool.bool_name
W pliku XML:@[package:]bool/bool_name - składnia:
-
<?xml version="1.0" encoding=<"utf>-8&qu<ot;?> resources bool na>me="bool_<name&qu<ot; [true | false]/bool> /resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values-small/bools.xml:<?xml version="1.0" encoding=<"utf>-8&qu<ot;?> resources bool n<ame="s<creen_small">true/bool> < boo<l name="adjust_view_bounds">true/bool> /resources>
Ten kod aplikacji pobiera wartość logiczną:
Kotlin
val screenIsSmall: Boolean =
resources.getBoolean(R.bool.screen_small)Java
Resources res =
getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small);W poniższym kodzie XML szablonu użyto wartości logicznej dla atrybutu:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
res/values/filename.xml(Kolor
Wartość koloru zdefiniowana w pliku XML.
Kolor jest określany przy użyciu wartości RGB i kanału alfa. Możesz użyć zasobu koloru,
w dowolnym miejscu, w którym można podać szesnastkową wartość koloru. Możesz też użyć zasobu koloru, gdy
W pliku XML oczekiwany jest zasób rysowalny, np. android:drawable="@color/green".
Wartość zawsze zaczyna się od znaku krzyżyka (#), po którym następuje znak Informacje w kolorach alfa-czerwonym, zielonym i niebieskim w jednym z tych formatów:
- #RGB
- #ARGB
- #RRGGBB
- Numer AARRGGBB
Uwaga: kolor to prosty zasób, do którego się odwołuje.
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby kolorów z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Atrybut
nameelementu<color>jest używany jako identyfikatora zasobu. - odniesienie do zasobu:
-
W języku Java:
R.color.color_name
W pliku XML:@[package:]color/color_name - składnia:
-
<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> color >name=&quo<t;color_<name" hex_color/color> /resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/colors.xml:<?xml version="1.0" encoding=<"utf-8&qu<ot;?> resources> co<lor name=&q<uot;opaque_red">#f00/color>< colo<r name="translucent_red">#80ff0000/color> /resources>
Ten kod aplikacji pobiera zasób koloru:
Kotlin
val color: Int =
resources.getColor(R.color.opaque_red)Java
Resources res =
getResources(); int color = res.getColor(R.color.opaque_red);Poniższy kod XML układu stosuje kolor do atrybutu:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
res/values/colors.xml(Wymiar
Wartość wymiaru zdefiniowana w pliku XML. Wymiar jest określony liczbą, po której następuje jednostka miary, np. 10 pikseli, 2 cale lub 5 sp. Android obsługuje następujące jednostki miary:
dp- Piksele niezależne od gęstości: abstrakcyjna jednostka oparta na gęstości fizycznej
ekranu. Jednostki te są podawane w odniesieniu do ekranu o rozdzielczości 160 dpi (punktów na cal), gdzie 1 dp jest równy mniej więcej taki sam.
do 1 piksela. Podczas wyświetlania reklamy na ekranie o większej gęstości liczba pikseli używanych do rysowania o 1 dp jest skalowana w górę.
przez współczynnik odpowiedni do rozdzielczości ekranu.
Na ekranie o mniejszej gęstości dane pikseli używanych na 1 dp zostanie pomniejszony. Stosunek dps do pikseli zmienia się wraz z gęstością ekranu, ale niekoniecznie w bezpośrednich proporcjach. Rozwiązaniem jest użycie jednostek dp zamiast jednostek px. , by dostosować rozmiar widoku do różnych gęstości ekranu. Zapewnia spójność rzeczywistych rozmiarów elementów interfejsu w różnych urządzenia.
sp- Piksele niezależne od skali – przypominają jednostkę dp, ale są skalowane według czcionki użytkownika. ustawienia rozmiaru. Przy określaniu rozmiarów czcionek zalecamy korzystanie z tej jednostki, ponieważ zostaną one dopasowane ze względu na gęstość ekranu i preferencje użytkownika.
pt- Punkty: 1/72 cala w zależności od fizycznego rozmiaru ekranu, Zakładając, że ekran ma gęstość 72 dpi.
px- Piksele: odpowiadają rzeczywistym pikselom na ekranie. Nie zalecamy korzystania z tej jednostki, ponieważ rzeczywista reprezentacja może się różnić w zależności od urządzenia. Różne urządzenia mogą mieć różną liczbę pikseli na cal, przy czym łączna liczba pikseli widocznych na ekranie może być większa lub mniejsza.
mm- Milimetry: w zależności od fizycznego rozmiaru ekranu.
in- Cale: na podstawie fizycznego rozmiaru ekranu.
Uwaga: wymiar to prosty zasób, do którego się odwołuje.
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby wymiarów z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Atrybut
nameelementu<dimen>jest używany jako identyfikatora zasobu. - odniesienie do zasobu:
-
W języku Java:
R.dimen.dimension_name
W pliku XML:@[package:]dimen/dimension_name - składnia:
-
<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> dimen name>="di<mensio>n<_name">; dimension/dimen /resources
- elementy:
- przykład:
- Plik XML zapisany o
res/values/dimens.xml:<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> dimen n<ame="te<xtview_height">25dp/dimen<> dim<en name="textview_width&<quot;>150<dp/dimen> dimen name<="b<all_radius">30dp/dimen> dimen name="font_size">16sp/dimen> /resources>
Ten kod aplikacji pobiera wymiar:
Kotlin
val fontSize: Float =
resources.getDimension(R.dimen.font_size)Java
Resources res =
getResources(); float fontSize = res.getDimension(R.dimen.font_size);Ten układ XML układu stosuje wymiary do atrybutów:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
res/values/filename.xml(ID
Unikalny identyfikator zasobu zdefiniowany w kodzie XML. używając imienia i nazwiska podanego w dokumencie <item>.
narzędzia dla programistów aplikacji na Androida utworzą w klasie R.java Twojego projektu unikalną liczbę całkowitą, której możesz użyć jako
identyfikator zasobów aplikacji, takich jak View w układzie interfejsu użytkownika,
lub unikalna liczba całkowita do użytku w kodzie aplikacji, np. identyfikator okna
kodu wyniku.
Uwaga: identyfikator to prosty zasób, do którego się odwołuje.
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby identyfikatorów z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>. Zasób identyfikatora nie odnosi się też do
rzeczywisty element zasobu: unikalny identyfikator, który można dołączyć do innych zasobów lub użyć
jako unikalną liczbę całkowitą w aplikacji.
- lokalizacja pliku:
- ) Nazwa pliku jest dowolna.
- odniesienie do zasobu:
-
W języku Java:
R.id.name
W pliku XML:@[package:]id/name - składnia:
-
<?xml version="1.0" encoding=<"utf>-8&qu<ot;?> resources item type=">i<d" > name="id_name" / /resources
- elementy:
- przykład:
-
Plik XML zapisany w lokalizacji
res/values/ids.xml:<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> item ty>pe=&q<uot;id" name="button_ok&q>u<ot; / item type="id" name="dialog_exit" / /resources>
Ten fragment kodu układu używa identyfikatora
"button_ok"widżetuButton:<Button android:id="@id/button_ok" style="@style/>button_style" /
Wartość
android:idnie zawiera znaku plusa w identyfikatorze, bo identyfikator już istnieje, jak określono w poprzednim przykładzieids.xml. Jeśli podasz Identyfikator zasobu XML za pomocą znaku plusa w formacieandroid:id="@+id/name", co oznacza, że identyfikator"name"jeszcze nie istnieje, ale został utworzony.Inny przykład: ten fragment kodu wykorzystuje identyfikator
"dialog_exit"jako unikalny identyfikator: dla okna dialogowego:Kotlin
showDialog(R.id.dialog_exit)Java
showDialog(R.id.dialog_exit);W tej samej aplikacji identyfikator
"dialog_exit"jest porównywany podczas tworzenia okna:Kotlin
override fun
onCreateDialog(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }Java
protected Dialog
onCreateDialog(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
res/values/filename.xml(Liczba całkowita
Liczba całkowita zdefiniowana w pliku XML.
Uwaga: liczba całkowita to prosty zasób, do którego się odwołuje
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby w postaci liczb całkowitych z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Atrybut
nameelementu<integer>jest używany jako identyfikatora zasobu. - odniesienie do zasobu:
-
W języku Java:
R.integer.integer_name
W pliku XML:@[package:]integer/integer_name - składnia:
-
<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> integer na>me=&quo<t;intege>r<_name">; integer/integer /resources
- elementy:
- przykład:
-
Plik XML zapisany w lokalizacji
res/values/integers.xml:<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> i<nteger name=&q<uot;max_speed">75/<integer><; integer name="min_speed">5/integer> /resources>
Ten kod aplikacji pobiera liczbę całkowitą:
Kotlin
val maxSpeed: Int =
resources.getInteger(R.integer.max_speed)Java
Resources res =
getResources(); int maxSpeed = res.getInteger(R.integer.max_speed);
res/values/filename.xml(Tablica całkowita
Tablica liczb całkowitych zdefiniowana w pliku XML.
Uwaga: tablica z liczbami całkowitymi to prosty zasób, do którego odwołuje się
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby tablicy z liczbami całkowitymi z innymi prostymi zasobami w jednym pliku XML
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Atrybut
nameelementu<integer-array>jest używany jako identyfikatora zasobu. - skompilowany typ danych zasobu:
- Wskaźnik zasobu do tablicy liczb całkowitych.
- odniesienie do zasobu:
-
W języku Java:
R.array.integer_array_name
W pliku XML:@[package:]array/integer_array_name - składnia:
-
<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> integer-array name=&quo<t;integer_array_n>ame&quo<t;>>; < item < integer/item /integer-array> /resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/integers.xml:<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> integer-a<rray n<ame="bits&<quot;&<gt; ite<m>4/<item> < item&<gt;8/item&g<t; item&<gt;16/item> item>32/item> /integer-array> /resources>
Ten kod aplikacji pobiera tablicę całkowitą:
Kotlin
val bits: IntArray =
resources.getIntArray(R.array.bits)Java
Resources res =
getResources(); int[] bits = res.getIntArray(R.array.bits);
res/values/filename.xml(Tablica z typem
Pole TypedArray zdefiniowane w pliku XML. Za pomocą
w celu utworzenia tablicy innych zasobów, na przykład obiektów rysowania. Tablica nie musi być jednorodna, więc możesz utworzyć tablicę mieszanych typów zasobów, ale
wiedzieć, jakie typy danych znajdują się w tablicy i gdzie się znajdują, aby prawidłowo uzyskać
każdy element z metodami get...() klasy TypedArray.
Uwaga: tablica o określonym typie jest prostym zasobem, do którego się odwołuje
używając wartości podanej w atrybucie name, a nie nazwy pliku XML. Jako
więc możesz połączyć zasoby tablicy o określonym typie z innymi prostymi zasobami w jednym pliku XML,
w ramach jednego elementu <resources>.
- lokalizacja pliku:
- )
Nazwa pliku jest dowolna. Atrybut
nameelementu<array>jest używany jako identyfikatora zasobu. - skompilowany typ danych zasobu:
- Wskaźnik zasobu do elementu
TypedArray. - odniesienie do zasobu:
-
W języku Java:
R.array.array_name
W pliku XML:@[package:]array/array_name - składnia:
-
<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> array name=&quo<t;in>teger_ar<ray_n>ame&q<uot;>< itemresource/item /array> /resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/arrays.xml:<?xml version="1.0" encoding=<"utf-8&quo<t;?> resources> ar<ray name="icon<s"> < item>@drawable/<home/item> < item>@drawa<ble/setting<s/item> < item>@drawable/logo<ut/item> < /array> < array name=&<quot;colors&quo<t;> < item>#F<FFF0000/<item> item>#FF00FF00/item> item>#FF0000FF/item> /array> /resources>
Następujący kod aplikacji pobiera każdą tablicę, a następnie uzyskuje pierwszy wpis w każdej z nich:
Kotlin
val icons: TypedArray =
resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray =resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)Java
Resources res =
getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0);
res/values/filename.xml(