Minggu, September 30, 2018

Dasar Android : Menyediakan Sumber Daya untuk Layout Adaptif

Menyediakan Sumber Daya untuk Layout Adaptif

Daftar Isi:

Layout adaptif adalah layout yang bekerja dengan baik pada berbagai orientasi dan ukuran layar, berbagai perangkat, berbagai lokal dan bahasa, serta sebagai versi Android.
Dalam bab ini Anda akan mempelajari cara membuat layout adaptif dengan mengeksternalkan dan mengelompokkan sumber daya, menyediakan sumber daya alternatif, dan menyediakan sumber daya default dalam aplikasi.

Mengeksternalkan sumber daya

Saat mengeksternalkan sumber daya, Anda harus memisahkannya dari kode aplikasi. Misalnya, sebagai ganti hard-code string ke dalam kode Anda, beri nama string tersebut dan tambahkan ke file res/values/strings.xml.
Selalu eksternalkan sumber daya seperti sumber daya dapat digambar, ikon, layout, dan string. Inilah alasan mengapa hal itu penting:
  • Anda bisa memelihara sumber daya yang dieksternalkan secara terpisah dari kode lainnya. Jika sumber daya digunakan di sejumlah tempat dalam kode dan perlu diubah, Anda hanya perlu mengubahnya di satu tempat.
  • Anda bisa menyediakan sumber daya alternatif yang mendukung konfigurasi perangkat tertentu, misalnya perangkat dengan berbagai bahasa atau ukuran layar. Hal ini menjadi semakin penting karena semakin banyak perangkat berbasis Android yang tersedia.

Mengelompokkan sumber daya

Simpan semua sumber daya Anda dalam folder res/. Atur sumber daya berdasarkan tipe ke dalam folder di /res. Anda harus menggunakan nama standar untuk folder-folder ini.
Misalnya, tangkapan layar berikut menampilkan hierarki file untuk proyek kecil, sebagaimana terlihat dalam tampilan Project "Android" di Android Studio. Folder yang berisi sumber daya default proyek ini menggunakan nama standar: drawable, layout, menu, mipmap (untuk ikon), dan values.
File sumber daya yang dieksternalkan di Android Studio
Tabel 1 mencantumkan nama folder sumber daya standar. Tipe dijelaskan lebih lengkap dalam panduan Menyediakan Sumber Daya.
Tabel 1: Nama Folder Sumber Daya Standar
Nama
Tipe Sumber Daya
animator/
File XML yang mendefinisikan animasi properti.
anim/
File XML yang mendefinisikan animasi tween.
color/
File XML yang mendefinisikan "daftar keadaan" warna. (Ini berbeda dari file colors.xml dalam folder values/.) Lihat Sumber Daya Daftar Keadaan Warna.
drawable/
File Bitmap (WebP, PNG, 9-patch, JPG, GIF) dan file XML yang dikompilasi menjadi sumber daya dapat digambar. Lihat Sumber Daya Dapat Digambar.
mipmap/
File sumber daya dapat digambar untuk beragam kepadatan ikon peluncur. Lihat Ringkasan Proyek.
layout/
File XML yang mendefinisikan layout antarmuka pengguna. Lihat Sumber Daya Layout.
menu/
File XML yang mendefinisikan menu aplikasi. Lihat Sumber Daya Menu.
raw/
File arbitrer yang disimpan dalam bentuk mentah. Untuk membuka sumber daya ini dengan InputStream mentah, panggil Resources.openRawResource() bersama ID sumber daya, yaitu R.raw.filename. Jika Anda memerlukan akses ke nama file dan hierarki file asli, pertimbangkan untuk menyimpan sumber daya dalam folder assets/ sebagai ganti res/raw/. File dalam assets/ tidak diberi ID sumber daya, sehingga Anda bisa membacanya hanya dengan menggunakan AssetManager.
values/
File XML yang berisi nilai-nilai sederhana, seperti string, integer, dan warna. Untuk kejelasan, tempatkan tipe sumber daya yang unik dalam file berbeda. Misalnya, inilah beberapa ketentuan penamaan file untuk sumber daya yang bisa Anda buat dalam folder ini:
  • arrays.xml untuk larik sumber daya (larik bertipe)
  • dimens.xml untuk nilai dimensi
  • strings.xml, colors.xml, styles.xml
xml/
File XML arbitrer yang bisa dibaca pada waktu proses dengan memanggil Resources.getXml(). Berbagai file konfigurasi XML, seperti konfigurasi yang dapat ditelusuri, harus disimpan di sini, bersama setelan preferensi.

Sumber daya alternatif

Sebagian besar aplikasi menyediakan sumber daya alternatif untuk mendukung konfigurasi perangkat tertentu. Misalnya, aplikasi Anda harus menyertakan sumber daya dapat digambar alternatif untuk kepadatan layar berbeda, dan sumber daya string alternatif untuk bahasa yang berbeda. Pada waktu proses, Android akan mendeteksi konfigurasi perangkat saat ini dan memuat sumber daya yang sesuai untuk aplikasi Anda.
Jika tidak ada sumber daya yang tersedia untuk konfigurasi perangkat tertentu, Android menggunakan sumber daya default yang Anda sertakan dalam aplikasi—sumber daya dapat digambar default, yang terdapat dalam folder res/drawable/, string teks default, yang ada dalam file res/values/strings.xml, dan seterusnya.
Seperti sumber daya default, sumber daya alternatif disimpan dalam folder dalam res/. Folder sumber daya alternatif menggunakan konvensi penamaan berikut:
-
  •  adalah nama folder untuk tipe sumber daya ini, seperti yang ditampilkan dalam Tabel 1. Misalnya, "drawable" atau "values".
  •  menetapkan konfigurasi perangkat yang menggunakan sumber daya ini. Qualifier yang memungkinkan ditampilkan dalam Tabel 2.
    Untuk menambahkan beberapa qualifier ke satu nama folder, pisahkan qualifier dengan tanda hubung. Jika menggunakan qualifier untuk folder sumber daya, Anda harus mencantumkannya agar qualifier tersebut dicantumkan dalam Tabel 2.
Contoh dengan satu qualifier:
  • Sumber daya string yang dilokalkan ke bahasa Jepang akan ada dalam file res/values-ja/strings.xml. Sumber daya string default (sumber daya yang akan digunakan bila sumber daya khusus bahasa tidak ditemukan) akan ada dalam res/values/strings.xml. Perhatikan, file XML memiliki nama identik, dalam hal ini "strings.xml".
  • Sumber daya gaya untuk API level 21 dan yang lebih tinggi akan ada dalam file res/values-v21/styles.xml . Sumber daya gaya default akan ada dalam res/values/styles.xml.
Contoh dengan beberapa qualifier:
  • Sumber daya layout untuk layout kanan ke kiri yang berjalan dalam mode "malam" akan ada dalam folder res/layout-ldrtl-night/ .
Dalam tampilan "Android" di Android Studio, qualifier tidak ditambahkan ke akhir folder. Sebagai gantinya, qualifier akan ditampilkan berupa label di sisi kanan file dalam tanda kurung. Misalnya, dalam tampilan "Android" di bawah ini, folder res/values/dimens.xml/ menampilkan dua file:
  • File dimens.xml , yang menyertakan sumber daya dimensi default.
  • File dimens.xml (w820dp) , yang menyertakan sumber daya dimensi untuk perangkat dengan lebar layar yang tersedia minimum 820 dp.
Sumber daya alternatif dalam
  1. Dalam tampilan "Android" di Android Studio, sumber daya default untuk dimensi ditampilkan dalam folder yang sama dengan sumber daya alternatif untuk dimensi.
Dalam tampilan "Project" di Android Studio, informasi yang sama disajikan secara berbeda, seperti yang ditampilkan dalam tangkapan layar di bawah ini.
Sumber daya alternatif dalam
  1. Dalam tampilan "Project" di Android Studio, sumber daya default untuk dimensi ditampilkan dalam folder res/values .
  2. Sumber daya alternatif untuk dimensi ditampilkan dalam folder res/values- .
Tabel 2 menampilkan qualifier konfigurasi yang didukung Android. Qualifier tersebut dicantumkan dalam urutan yang harus Anda gunakan saat mengombinasikan beberapa qualifier dalam satu nama folder. Misalnya dalam res/layout-ldrtl-night/, qualifier untuk arah layout dicantumkan sebelum qualifier untuk mode malam, karena arah layout dicantumkan sebelum mode malam dalam tabel.
Qualifier ini dijelaskan secara detail dalam Menyediakan Sumber Daya Alternatif.
Tabel 2: Qualifier untuk Menamakan Sumber Daya Alternatif
Prioritas
Qualifier
Keterangan
1
MCC dan MNC
Kode negara seluler (MCC), secara opsional diikuti oleh kode jaringan seluler (MNC) dari kartu SIM dalam perangkat. Misalnya, mcc310adalah A.S. untuk operator mana saja, mcc310-mnc004 adalah A.S. untuk Verizon, dan mcc208-mnc00 adalah Prancis untuk Orange.
2
Pelokalan
Bahasa, atau bahasa dan region Contoh: enen-rUSfr-rFRfr-rCA. Dijelaskan dalam Pelokalan, di bawah ini.
3
Arah layout
Arah layout aplikasi Anda. Nilai-nilai yang memungkinkan antara lain ldltr (arah layout kiri ke kanan, yang merupakan default) dan ldrtl(arah layout kanan ke kiri).
Untuk mengaktifkan fitur layout kanan ke kiri, setel supportsRtl ke "true" dan setel targetSdkVersion ke 17 atau yang lebih tinggi.
4
Lebar terkecil
Ukuran layar dasar sebagaimana ditunjukkan oleh dimensi terpendek dari area layar yang tersedia. Contoh: sw320dp. Dijelaskan dalam Lebar terkecil, di bawah ini.
5
Lebar yang tersedia
Lebar layar minimum yang tersedia tempat sumber daya digunakan. Ditetapkan dalam unit dp. Formatnya adalah wdp, misalnya, w720dpdan w1024dp.
6
Tinggi yang tersedia
Tinggi layar minimum yang tersedia tempat sumber daya digunakan. Ditetapkan dalam unit dp. Formatnya adalah hdp, misalnya, h720dpdan h1024dp.
7
Ukuran layar
Nilai-nilai yang memungkinkan:
  • small: Layar seperti layar berkepadatan rendah QVGA
  • normal: Layar seperti kepadatan medium HVGA
  • large: Layar seperti kepadatan medium VGA
  • xlarge: Layar seperti pada perangkat bergaya tablet
8
Aspek layar
Nilai-nilai yang memungkinkan antara lain long (untuk layar seperti WQVGA, WVGA, FWVGA) dan notlong (untuk layar seperti QVGA, HVGA, dan VGA).
9
Layar bulat
Nilai-nilai yang memungkinkan antara lain round (untuk layar seperti pada perangkat bulat yang dapat dikenakan) dan notround (untuk layar persegi panjang seperti ponsel).
10
Orientasi layar
Nilai-nilai yang memungkinkan: port, land. Dijelaskan dalam Orientasi layar, di bawah ini.
11
Mode UI
Nilai-nilai yang memungkinkan:
  • car: Perangkat sedang menampilkan di dok mobil
  • desk: Menampilkan di dok meja
  • television: Menampilkan pada layar besar yang jauh dari pengguna, terutama diorientasikan di sekitar D-pad atau interaksi non-pointer lainnya
  • appliance: Perangkat berfungsi sebagai alat, tanpa tampilan
  • watch: Perangkat memiliki tampilan dan dikenakan di pergelangan tangan
12
Mode malam
Nilai-nilai yang memungkinkan:
  • night
  • notnight
13
Kepadatan piksel layar
Nilai-nilai yang memungkinkan:
  • ldpi: Layar berkepadatan rendah; sekitar 120 dpi.
  • mdpi: Layar berkepadatan medium (pada HVGA tradisional); sekitar 160 dpi.
  • hdpi: Layar berkepadatan tinggi; sekitar 240 dpi.
  • xhdpi: Sekitar 320 dpi. Ditambahkan dalam API level 8.
  • xxhdpi: Sekitar 480 dpi. Ditambahkan dalam API level 16.
  • xxxhdpi: Ikon peluncur saja; sekitar 640 dpi. Ditambahkan dalam API level 18.
  • nodpi: Untuk sumber daya bitmap yang tidak ingin Anda skalakan agar cocok dengan kepadatan perangkat.
  • tvdpi: Layar antara mdpi dan hdpi; sekitar 213 dpi. Dimaksudkan untuk televisi, dan sebagian besar aplikasi tidak memerlukannya. Ditambahkan dalam API level 13.
  • anydpi: Cocok dengan semua kepadatan layar dan diprioritaskan di atas qualifier lainnya. Berguna bagi sumber daya dapat digambar untuk vektor. Ditambahkan dalam API level 21.
Catatan: Menggunakan qualifier kepadatan tidak berarti sumber daya hanya untuk layar dengan kepadatan itu saja. Jika Anda tidak menyediakan sumber daya alternatif dengan qualifier yang lebih cocok dengan konfigurasi perangkat saat ini, sistem mungkin akan menggunakan sumber daya mana saja yang paling cocok.
14
Tipe layar sentuh
Nilai-nilai yang memungkinkan antara lain notouch (perangkat tidak memiliki layar sentuh) dan finger (perangkat memiliki layar sentuh).
15
Ketersediaan keyboard
Nilai-nilai yang memungkinkan:
  • keysexposed: Perangkat menyediakan keyboard.
  • keyshidden: Perangkat memiliki keyboard fisik yang tersedia namun tersembunyi, dan perangkat tidak mengaktifkan keyboard perangkat lunak.
  • keyssoft: Perangkat mengaktifkan keyboard perangkat lunak, baik itu terlihat atau tidak.
16
Metode masukan teks utama
Nilai-nilai yang memungkinkan:
  • nokeys: Perangkat tidak memiliki tombol fisik untuk masukan teks.
  • qwerty: Perangkat memiliki keyboard fisik qwerty, baik terlihat atau tidak kepada pengguna.
  • 12key: Perangkat memiliki keyboard fisik 12 tombol, baik terlihat atau tidak kepada pengguna.
17
Ketersediaan tombol navigasi
Nilai-nilai yang memungkinkan antara lain navexposed (tombol navigasi tersedia untuk pengguna) dan navhidden (tombol navigasi tidak tersedia, misalnya di balik penutup yang tertutup).
18
Metode navigasi non-sentuh utama
Nilai-nilai yang memungkinkan:
  • nonav: Perangkat tidak memiliki fasilitas navigasi selain layar sentuh.
  • dpad: Perangkat memiliki pad pengarah (D-pad).
  • trackball: Perangkat memiliki trackball.
  • wheel: Perangkat memiliki roda pengarah untuk navigasi (tidak umum).
19
Versi platform (API level)
Level API yang didukung oleh perangkat. Dijelaskan dalam Versi platform, di bawah ini.

Membuat sumber daya alternatif

Untuk membuat folder sumber daya alternatif paling mudah di Android Studio, gunakan tampilan "Android" dalam jendela alat (bantu) Project.
Memilih tampilan Android di Android Studio
  1. Memilih tampilan "Android" di Android Studio. Jika Anda tidak melihat opsi ini, pastikan jendela alat (bantu) Project terlihat dengan memilih View > Tool Windows > Project.
Untuk menggunakan Android Studio dalam membuat folder sumber daya alternatif khusus konfigurasi yang baru dalam res/:
  1. Pastikan Anda menggunakan tampilan "Android", seperti yang ditampilkan di atas.
  2. Klik kanan folder res/ dan pilih New > Android resource directory. Kotak dialog New Resource Directory akan muncul.
    Kotak dialog New Resource Directory di Android Studio.
  3. Pilih tipe sumber daya (dijelaskan dalam Tabel 1) dan qualifier (dijelaskan dalam Tabel 2) yang diterapkan pada rangkaian sumber daya alternatif ini.
  4. Klik OK.
Jika Anda tidak bisa melihat folder baru di jendela alat (bantu) Project di Android Studio, beralihlah ke tampilan "Project", seperti yang ditampilkan dalam tangkapan layar di bawah ini. Jika Anda tidak melihat opsi ini, pastikan jendela alat (bantu) Project terlihat dengan memilih View > Tool Windows > Project.
Memilih tampilan Project di Android Studio
Simpan sumber daya alternatif dalam folder baru File sumber daya alternatif harus diberi nama yang sama persis dengan file sumber daya default, misalnya "styles.xml" atau "dimens.xml".
Untuk dokumentasi lengkap tentang sumber daya alternatif, lihat Menyediakan Sumber Daya Alternatif.

Qualifier sumber daya alternatif umum

Bagian ini menjelaskan beberapa qualifier yang umum digunakan. Tabel 2 menyediakan daftar lengkap.

Orientasi layar

Qualifier orientasi layar memiliki dua nilai yang memungkinkan:
  • port: Perangkat dalam mode potret (vertikal). Misalnya, res/layout-port/ akan berisi file layout untuk digunakan saat perangkat dalam mode potret.
  • land: Perangkat dalam mode lanskap (horizontal). Misalnya, res/layout-land/ akan berisi file layout untuk digunakan saat perangkat dalam mode lanskap.
Jika pengguna memutar layar saat aplikasi berjalan, dan sumber daya alternatif tersedia, Android akan secara otomatis memuat ulang aplikasi Anda dengan sumber daya alternatif yang cocok dengan konfigurasi perangkat baru. Untuk informasi tentang mengontrol cara aplikasi Anda berperilaku selama perubahan konfigurasi, lihat Menangani Perubahan Waktu Proses.
Untuk membuat varian file XML layout Anda untuk orientasi lanskap dan tampilan yang lebih besar, gunakan editor layout. Untuk menggunakan editor layout:
  1. Di Android Studio, buka file XML. Editor layout akan muncul.
  2. Dari menu tarik-turun dalam menu Layout Variants, pilih opsi seperti Create Landscape Variant. Menu Layout Variants, yang tampak saat file XML terbuka di Android Studio, disorot dalam tangkapan layar di bawah ini.
    Ikon Layout Variants di Android Studio
Layout untuk orientasi lanskap yang berbeda akan muncul, dan file XML baru akan dibuatkan untuk Anda. Misalnya, Anda memiliki file bernama "activity_main.xml (land)" beserta file "activity_main.xml" asal. Anda bisa menggunakan editor untuk mengubah layout baru tanpa mengubah layout asal.
Lihat praktik sebelumnya tentang layout untuk contoh desain layout.

Lebar terkecil

Qualifier lebar terkecil menetapkan lebar minimum perangkat. Ini adalah tinggi dan lebar layar terpendek yang tersedia, "lebar terkecil" untuk layar. Lebar terkecil adalah karakteristik perangkat yang memiliki ukuran layar tetap, dan tidak berubah saat orientasi layar berubah.
Tetapkan lebar terkecil dalam unit dp, menggunakan format berikut ini:
swdp
dalam hal ini:  adalah lebar minimum. Misalnya, sumber daya dalam suatu file bernama res/values-sw320dp/styles.xml digunakan jika lebar layar perangkat selalu setidaknya 320 dp.
Anda bisa menggunakan qualifier ini untuk memastikan layout tertentu tidak akan digunakan kecuali jika lebar yang tersedia setidaknya  dps, bagaimanapun orientasi layar saat ini.
Beberapa nilai untuk ukuran layar umum:
  • 320, untuk perangkat dengan konfigurasi layar seperti
    • 240x320 ldpi (handset QVGA)
    • 320x480 mdpi (handset)
    • 480x800 hdpi (handset kepadatan tinggi)
  • 480, untuk layar seperti 480x800 mdpi (tablet/handset).
  • 600, untuk layar seperti 600x1024 mdpi (tablet 7").
  • 720, untuk layar seperti 720x1280 mdpi (tablet 10").
Bila aplikasi Anda menyediakan beberapa folder sumber daya dengan nilai berbeda untuk qualifier lebar terkecil, sistem akan menggunakan nilai terdekat dengan (tanpa melebihi) lebar terkecil perangkat.
Contoh:
res/values-sw600dp/dimens.xml berisi dimensi untuk gambar. Bila aplikasi berjalan pada perangkat dengan lebar terkecil 600 dp atau yang lebih tinggi (seperti tablet), Android akan menggunakan gambar dalam folder ini.

Versi platform

Qualifier versi platform menetapkan API level minimum yang didukung oleh perangkat. Misalnya, gunakan v11 untuk API level 11 (perangkat dengan Android 3.0 atau yang lebih tinggi). Lihat dokumen Android API level untuk informasi selengkapnya tentang nilai ini.
Gunakan qualifier versi platform bila Anda menggunakan sumber daya untuk fungsionalitas yang tidak tersedia dalam versi Android sebelumnya.
Misalnya, gambar WebP memerlukan API level 14 (Android 4.0) atau yang lebih tinggi, dan untuk dukungan penuh diperlukan API level 17 (Android 4.2) atau yang lebih tinggi. Jika Anda menggunakan gambar WebP:
  • Letakkan versi default gambar dalam folder res/drawable . Gambar ini harus menggunakan format gambar yang didukung untuk semua API level, misalnya PNG.
  • Letakkan versi gambar WebP dalam folder res/drawable-v17 . Jika perangkat menggunakan API Level 17 atau yang lebih tinggi, Android akan memilih sumber daya ini pada waktu proses.

Pelokalan

Qualifier pelokalan menetapkan bahasa, dan region yang bersifat opsional. Qualifier ini adalah dua huruf kode bahasa ISO 639-1, bisa diikuti oleh dua huruf kode region ISO 3166-1-alpha-2 (diawali oleh huruf kecil r).
Anda bisa menetapkan bahasa saja, namun tidak boleh region saja. Contoh:
  • res/values-fr-rFR/strings.xml
    String dalam file ini digunakan pada perangkat yang dikonfigurasi untuk bahasa Prancis dan regionnya juga disetel ke France.
  • res/mipmap-fr-rCA/
    Ikon dalam folder ini digunakan pada perangkat yang dikonfigurasi untuk bahasa Prancis dan regionnya disetel ke Canada.
  • res/layout-ja/content_main.xml
    Layout ini digunakan pada perangkat yang dikonfigurasi untuk bahasa Jepang.
Jika pengguna mengubah bahasa atau region dalam setelan sistem perangkat saat aplikasi berjalan, dan jika sumber daya alternatif tersedia, Android akan secara otomatis memuat ulang aplikasi Anda dengan sumber daya alternatif yang cocok dengan konfigurasi perangkat baru. Untuk informasi tentang mengontrol cara aplikasi Anda berperilaku selama perubahan konfigurasi, lihat Menangani Perubahan Waktu Proses.
Untuk panduan lengkap tentang pelokalan, lihat Melokalkan dengan Sumber Daya.

Menyediakan sumber daya default

Sumber daya default menetapkan desain dan materi default untuk aplikasi Anda. Misalnya, saat aplikasi berjalan dalam lokal yang tidak Anda sediakan teks lokal khususnya, Android akan memuat string default dari res/values/string.xml. Jika file default ini tidak ada, atau jika file kehilangan bahkan satu string yang diperlukan oleh aplikasi, maka aplikasi Anda tidak akan berjalan dan akan menampilkan kesalahan.
Sumber daya default memiliki nama folder sumber daya standar (values, misalnya) tanpa qualifier dalam nama folder atau dalam tanda kurung setelah nama file.
Sumber daya default
  1. Sumber daya default
    Tip: Selalu sediakan sumber daya default, karena aplikasi mungkin berjalan pada konfigurasi perangkat yang tidak Anda antisipasi.
Kadang-kadang versi Android baru menambahkan qualifier konfigurasi yang tidak didukung versi lama. Jika Anda menggunakan qualifier sumber daya baru dan mempertahankan kompatibilitas kode dengan versi Android lama, maka saat versi Android lama menjalankan aplikasi, aplikasi akan mogok kecuali jika sumber daya default tersedia. Hal ini karena versi Android lama tidak bisa menggunakan sumber daya alternatif yang diberi nama dengan qualifier baru.
Misalnya, anggaplah minSdkVersion Anda disetel ke 4 dan tetapkan semua sumber daya dapat digambar menggunakan mode malam, yang berarti bahwa Anda meletakkan sumber daya dapat digambar dalam res/drawable-night/ dan res/drawable-notnight/. Dalam contoh ini:
  • Bila perangkat API level 4 perangkat menjalankan aplikasi, perangkat tidak bisa mengakses sumber daya dapat digambar. Versi Android tidak mengetahui tentang night dan notnight, karena qualifier ini tidak ditambahkan hingga API level 8. Aplikasi mogok, karena tidak menyertakan sumber daya default apa pun untuk digunakan.
Dalam contoh ini, Anda mungkin ingin notnight menjadi kasus default Anda. Untuk menyelesaikan masalah, keluarkan qualifier notnight dan masukkan sumber daya dapat digambar Anda dalam res/drawable/ dan res/drawable-night/. Dengan solusi ini:
  • Bila perangkat API level 4 menjalankan aplikasi, aplikasi akan menggunakan sumber daya dalam folder res/drawable/ default.
  • Bila perangkat pada API level 8 atau yang lebih tinggi menggunakan aplikasi, aplikasi akan menggunakan sumber daya dalam folder res/drawable-night/ kapan pun perangkat dalam mode malam. Pada saat lainnya, perangkat akan menggunakan sumber daya (notnight) default.
Untuk menyediakan kompatibilitas perangkat terbaik, sediakan sumber daya default untuk setiap sumber daya yang diperlukan aplikasi Anda. Setelah sumber daya default Anda berada di tempatnya, buat sumber daya alternatif untuk konfigurasi perangkat khusus dengan menggunakan qualifier konfigurasi perangkat khusus seperti yang ditampilkan dalam Tabel 2.