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 memiliki jenis
- 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:
- 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:
- 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:
- 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:
- 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 widgetButton
:<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 contohids.xml
sebelumnya. Saat Anda menetapkan ID ke resource XML menggunakan tanda plus dalam formatandroid: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:
- 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:
- 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:
- 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);