Jenis resource lainnya

Halaman ini mendefinisikan jenis resource berikut yang dapat Anda eksternalisasi:

Bool
Resource XML yang berisi nilai boolean.
Warna
Resource XML yang berisi nilai warna (warna heksadesimal).
Dimensi
Resource XML yang berisi nilai dimensi (dengan unit ukuran).
ID
Resource XML yang memberikan ID unik untuk resource dan komponen aplikasi.
Bilangan Bulat
Resource XML yang berisi nilai bilangan bulat.
Array bilangan bulat
Resource XML yang menyediakan array bilangan bulat.
Array yang diketik
Resource XML yang menyediakan TypedArray (yang dapat Anda gunakan untuk array drawable).

Bool

Nilai boolean yang ditentukan dalam XML.

Catatan: Bool adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource bool dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer. name elemen <bool> digunakan sebagai ID resource.
referensi resource:
Di Java: R.bool.bool_name
Dalam XML: @[package:]bool/bool_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool
        name="bool_name"
        >[true | false]</bool>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<bool>
Nilai boolean: true atau false.

Atribut:

name
String. Nama untuk nilai bool. Nama ini digunakan sebagai ID resource.
contoh:
File XML yang disimpan di 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>

Kode aplikasi berikut mengambil boolean:

Kotlin

val screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)

Java

Resources res = getResources();
boolean screenIsSmall = res.getBoolean(R.bool.screen_small);

XML tata letak berikut menggunakan boolean untuk suatu atribut:

<ImageView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:src="@drawable/logo"
    android:adjustViewBounds="@bool/adjust_view_bounds" />

Warna

Nilai warna yang ditentukan dalam XML. Warna ditentukan menggunakan nilai RGB dan saluran alfa. Anda dapat menggunakan resource warna di mana pun yang menerima nilai warna heksadesimal. Anda juga dapat menggunakan resource warna ketika resource drawable diperkirakan ada dalam XML, seperti android:drawable="@color/green".

Nilainya selalu dimulai dengan karakter tagar (#) yang diikuti oleh informasi Alpha-Red-Green-Blue dalam salah satu format berikut:

  • #RGB
  • #ARGB
  • #RRGGBB
  • #AARRGGBB

Catatan: Warna adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource warna dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/colors.xml
Nama file bersifat arbitrer. name elemen <color> digunakan sebagai ID resource.
referensi resource:
Di Java: R.color.color_name
Dalam XML: @[package:]color/color_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color
        name="color_name"
        >hex_color</color>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<color>
Warna yang ditunjukkan dalam heksadesimal.

Atribut:

name
String. Nama untuk warna. Nama ini digunakan sebagai ID resource.
contoh:
File XML yang disimpan di 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>

Kode aplikasi berikut mengambil resource warna:

Kotlin

val color: Int = resources.getColor(R.color.opaque_red)

Java

Resources res = getResources();
int color = res.getColor(R.color.opaque_red);

XML tata letak berikut menerapkan warna ke suatu atribut:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/translucent_red"
    android:text="Hello"/>

Dimensi

Nilai dimensi yang ditentukan dalam XML. Dimensi ditentukan dengan angka, diikuti oleh satuan ukuran, seperti 10 px, 2 in, atau 5 sp. Satuan ukuran berikut didukung oleh Android:

dp
Piksel kepadatan mandiri: Satuan abstrak yang didasarkan pada kepadatan fisik layar. Satuan ini relatif terhadap layar 160 dpi (titik per inci); 1 dp kurang lebih sama dengan 1 px. Saat dijalankan di layar yang memiliki kepadatan lebih tinggi, jumlah piksel yang digunakan untuk menggambar 1 dp ditingkatkan skalanya dengan faktor yang sesuai untuk dpi layar.

Demikian juga, saat dijalankan di layar yang memiliki kepadatan lebih rendah, jumlah piksel yang digunakan untuk 1 dp akan diperkecil skalanya. Rasio dp ke piksel berubah seiring kepadatan layar, tetapi proporsinya belum tentu sama persis. Menggunakan satuan dp, dan bukan satuan px, merupakan solusi untuk membuat ukuran dimensi tampilan dalam tata letak Anda dapat berubah dengan benar untuk berbagai kepadatan layar. Hal ini memberikan konsistensi bagi ukuran elemen UI Anda yang sebenarnya di berbagai perangkat.

sp
Piksel skala mandiri - Mirip dengan satuan dp, tetapi turut diskalakan dengan preferensi ukuran font pengguna. Sebaiknya gunakan satuan ini saat menentukan ukuran font agar font disesuaikan dengan kepadatan layar dan preferensi pengguna.
pt
Titik: Satuan berukuran 1/72 inci berdasarkan ukuran fisik layar, dengan asumsi layar memiliki kepadatan 72 dpi.
px
Piksel: Sesuai dengan piksel sebenarnya di layar. Sebaiknya jangan gunakan unit ini karena representasi yang sebenarnya dapat bervariasi di berbagai perangkat. Perangkat yang berbeda dapat memiliki jumlah piksel yang berbeda per inci dan mungkin memiliki lebih banyak atau lebih sedikit total piksel yang tersedia di layarnya.
mm
Milimeter: Berdasarkan ukuran fisik layar.
in
Inci: Berdasarkan ukuran fisik layar.

Catatan: Dimensi adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource dimensi dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer. name elemen <dimen> digunakan sebagai ID resource.
referensi resource:
Di Java: R.dimen.dimension_name
Dalam XML: @[package:]dimen/dimension_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen
        name="dimension_name"
        >dimension</dimen>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<dimen>
Dimensi, yang direpresentasikan dengan float, diikuti oleh satuan ukuran (dp, sp, pt, px, mm, in).

Atribut:

name
String. Nama untuk dimensi. Nama ini digunakan sebagai ID resource.
contoh:
File XML yang disimpan di 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>

Kode aplikasi berikut mengambil dimensi:

Kotlin

val fontSize: Float = resources.getDimension(R.dimen.font_size)

Java

Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);

XML tata letak berikut menerapkan dimensi ke atribut:

<TextView
    android:layout_height="@dimen/textview_height"
    android:layout_width="@dimen/textview_width"
    android:textSize="@dimen/font_size"/>

ID

ID resource unik yang ditentukan dalam XML. Menggunakan nama yang diberikan dalam elemen <item>, alat developer Android akan membuat bilangan bulat unik dalam class R.java project Anda yang dapat digunakan sebagai ID untuk resource aplikasi, seperti View dalam tata letak UI Anda, atau bilangan bulat unik yang dapat digunakan dalam kode aplikasi, seperti ID untuk dialog atau kode hasil.

Catatan: ID adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource ID dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama. Selain itu, resource ID tidak mereferensikan item resource yang sebenarnya: resource ini adalah ID unik yang dapat diberikan ke resource lain atau digunakan sebagai bilangan bulat unik dalam aplikasi Anda.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer.
referensi resource:
Di Java: R.id.name
Dalam XML: @[package:]id/name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="id_name" />
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<item>
Menentukan ID unik. Tidak memerlukan nilai, hanya atribut.

Atribut:

type
Harus berupa "id".
name
String. Nama unik untuk ID.
contoh:

File XML yang disimpan di 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>

Cuplikan tata letak berikut menggunakan ID "button_ok" untuk widget Button:

<Button android:id="@id/button_ok"
    style="@style/button_style" />

Nilai android:id di sini tidak mencakup tanda plus dalam referensi ID karena ID-nya sudah ada, seperti yang ditentukan dalam contoh ids.xml sebelumnya. Saat Anda menetapkan ID ke resource XML menggunakan tanda plus dalam format android:id="@+id/name", artinya ID "name" belum ada, dan dibuat.

Contoh lainnya, cuplikan kode berikut menggunakan ID "dialog_exit" sebagai ID unik untuk dialog:

Kotlin

showDialog(R.id.dialog_exit)

Java

showDialog(R.id.dialog_exit);

Dalam aplikasi yang sama, ID "dialog_exit" dibandingkan saat membuat dialog:

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;
}

Bilangan Bulat

Bilangan bulat yang ditentukan dalam XML.

Catatan: Bilangan bulat adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource bilangan bulat dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer. name elemen <integer> digunakan sebagai ID resource.
referensi resource:
Di Java: R.integer.integer_name
Dalam XML: @[package:]integer/integer_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer
        name="integer_name"
        >integer</integer>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<integer>
Bilangan bulat.

Atribut:

name
String. Nama untuk bilangan bulat. Nama ini digunakan sebagai ID resource.
contoh:

File XML yang disimpan di 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>

Kode aplikasi berikut akan mengambil bilangan bulat:

Kotlin

val maxSpeed: Int = resources.getInteger(R.integer.max_speed)

Java

Resources res = getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);

Array bilangan bulat

Array bilangan bulat yang ditentukan dalam XML.

Catatan: Array bilangan bulat adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource array bilangan bulat dengan resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer. name elemen <integer-array> digunakan sebagai ID resource.
jenis data resource yang dihimpun:
Pointer resource ke array bilangan bulat.
referensi resource:
Di Java: R.array.integer_array_name
Dalam XML: @[package:]array/integer_array_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array
        name="integer_array_name">
        <item
            >integer</item>
    </integer-array>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<integer-array>
Menentukan array bilangan bulat. Berisi satu atau beberapa elemen <item> turunan.

Atribut:

android:name
String. Nama untuk array. Nama ini akan digunakan sebagai ID resource untuk mereferensikan array.
<item>
Bilangan bulat. Nilainya dapat berupa referensi ke resource bilangan bulat lainnya. Harus merupakan turunan dari elemen <integer-array>.

Tidak ada atribut.

contoh:
File XML yang disimpan di 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>

Kode aplikasi berikut mengambil array bilangan bulat:

Kotlin

val bits: IntArray = resources.getIntArray(R.array.bits)

Java

Resources res = getResources();
int[] bits = res.getIntArray(R.array.bits);

Array yang memiliki jenis

TypedArray yang ditentukan dalam XML. Anda dapat menggunakannya untuk membuat array resource lain, seperti drawable. Array tidak harus sama. Anda dapat membuat array yang terdiri dari berbagai jenis resource, tetapi ketahuilah apa saja dan letak jenis data yang ada dalam array agar Anda dapat memperoleh setiap item dengan benar menggunakan metode get...() class TypedArray.

Catatan: Array yang memiliki jenis adalah resource sederhana yang direferensikan menggunakan nilai yang diberikan dalam atribut name, bukan nama file XML. Dengan demikian, Anda dapat menggabungkan resource array yang memiliki jenis ini bersama resource sederhana lainnya dalam satu file XML, menggunakan elemen <resources> yang sama.

lokasi file:
res/values/filename.xml
Nama file bersifat arbitrer. name elemen <array> digunakan sebagai ID resource.
jenis data resource yang dihimpun:
Pointer resource ke TypedArray.
referensi resource:
Di Java: R.array.array_name
Dalam XML: @[package:]array/array_name
sintaksis:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array
        name="integer_array_name">
        <item>resource</item>
    </array>
</resources>
elemen:
<resources>
Wajib. Ini adalah node root.

Tidak ada atribut.

<array>
Menentukan array. Berisi satu atau beberapa elemen <item> turunan.

Atribut:

android:name
String. Nama untuk array. Nama ini akan digunakan sebagai ID resource untuk mereferensikan array.
<item>
Resource umum. Nilainya dapat berupa referensi ke resource atau jenis data sederhana. Harus merupakan turunan dari elemen <array>.

Tidak ada atribut.

contoh:
File XML yang disimpan di 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>

Kode aplikasi berikut mengambil setiap array, lalu memperoleh entri pertama dalam setiap array:

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);