Halaman ini mendefinisikan lebih banyak jenis resource yang dapat Anda eksternalisasi, termasuk:
- Bool
- Resource XML yang berisi nilai boolean.
- Warna
- Resource XML yang berisi nilai warna (warna heksadesimal).
- Dimensi
- Resource XML yang berisi nilai dimensi (dengan satuan ukuran).
- ID
- Resource XML yang menyediakan 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>
akan 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 akan 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 ini 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 dengan nilai RGB dan saluran alpha. 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 (misalnya, android:drawable="@color/green"
).
Nilainya selalu dimulai dengan karakter tagar (#) dan 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>
akan 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 akan 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 ini 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. Misalnya: 10 px, 2 in, 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 diturunkan skalanya. Rasio dp ke piksel akan berubah mengikuti kepadatan layar, tetapi proporsinya belum tentu sama persis. Menggunakan satuan dp (bukan satuan px) merupakan solusi yang mudah agar ukuran dimensi tampilan dalam tata letak Anda dapat berubah dengan benar untuk berbagai kepadatan layar. Dengan kata lain, satuan ini menentukan konsistensi bagi ukuran elemen UI Anda 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 aktual di layar. Satuan ukuran ini tidak direkomendasikan karena representasi sebenarnya dapat bervariasi di berbagai perangkat; setiap perangkat mungkin memiliki jumlah piksel per inci yang berbeda, 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>
akan 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 akan 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 ini 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>
, developer tool Android akan membuat bilangan bulat unik dalam class R.java
project Anda, yang dapat digunakan sebagai ID untuk resource aplikasi (misalnya, View
dalam tata letak UI Anda) atau bilangan bulat unik yang dapat digunakan dalam kode aplikasi (misalnya, sebagai 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, harap diingat bahwa resource ID tidak mereferensikan item resource yang sebenarnya; resource ini hanyalah 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>
Kemudian, cuplikan tata letak ini menggunakan ID "button_ok" untuk widget Tombol:
<Button android:id="@id/button_ok" style="@style/button_style" />
Perhatikan bahwa nilai
android:id
tidak menyertakan tanda plus dalam referensi ID, karena ID-nya sudah ada, seperti yang ditentukan dalam contohids.xml
di atas. (Saat Anda menetapkan ID ke resource XML menggunakan tanda plus, dalam formatandroid:id="@+id/name"
, artinya ID "name" tidak ada dan harus dibuat.)Contoh lainnya, cuplikan kode berikut menggunakan ID "dialog_exit" sebagai ID unik untuk sebuah dialog:
Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);Dalam aplikasi yang sama, ID "dialog_exit" akan 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>
akan 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>
akan digunakan sebagai ID resource.- jenis data resource terhimpun:
- Penunjuk 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 akan 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. Perlu diketahui bahwa array ini tidak harus sama; Anda dapat membuat array yang terdiri dari berbagai jenis resource, tetapi harus mengetahui apa saja dan letak jenis data yang ada dalam array agar dapat memperoleh setiap item dengan benar menggunakan metode get...()
milik 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>
akan digunakan sebagai ID resource.- jenis data resource terhimpun:
- Penunjuk 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 akan 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);