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 atrybutname
ID. - 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"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values-small/bools.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool 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
name
elementu<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"?> <resources> <color name="color_name" >hex_color</color> </resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/colors.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color 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
name
elementu<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"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/dimens.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_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"?> <resources> <item type="id" name="id_name" /> </resources>
- elementy:
- przykład:
-
Plik XML zapisany w lokalizacji
res/values/ids.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <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:id
nie 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
name
elementu<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"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- elementy:
- przykład:
-
Plik XML zapisany w lokalizacji
res/values/integers.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="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
name
elementu<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"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/integers.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>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
name
elementu<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"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- elementy:
- przykład:
- Plik XML zapisany o
res/values/arrays.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</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
(