Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

Jenis resource lainnya

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:
<resources>
Wajib. Elemen ini harus menjadi node root.

Tidak ada atribut.

<bool>
Nilai boolean: true atau false.

atribut:

name
String. Nama untuk nilai bool. Nama ini akan 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 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:
<resources>
Wajib. Elemen ini harus menjadi node root.

Tidak ada atribut.

<color>
Warna yang ditunjukkan dalam heksadesimal, seperti yang dijelaskan di atas.

atribut:

name
String. Nama untuk warna. Nama ini akan 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 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:
<resources>
Wajib. Elemen ini harus menjadi node root.

Tidak ada atribut.

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

atribut:

name
String. Nama untuk dimensi. Nama ini akan 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 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:
<resources>
Wajib. Elemen ini harus menjadi 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>
    

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 contoh ids.xml di atas. (Saat Anda menetapkan ID ke resource XML menggunakan tanda plus, dalam format android: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:
<resources>
Wajib. Elemen ini harus menjadi node root.

Tidak ada atribut.

<integer>
Bilangan bulat.

atribut:

name
String. Nama untuk bilangan bulat. Nama ini akan 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> 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:
<resources>
Wajib. Elemen ini harus menjadi 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 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:
<resources>
Wajib. Elemen ini harus menjadi 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 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);