Resource aplikasi, seperti ikon aplikasi, string yang dilokalkan, dan bitmap, disusun ke dalam direktori khusus jenis di dalam direktori res/ setiap modul. Anda juga dapat menambahkan versi alternatif dari setiap file yang dioptimalkan untuk berbagai konfigurasi perangkat, seperti versi bitmap resolusi tinggi untuk layar berkepadatan tinggi.
Android Studio membantu Anda menambahkan resource baru dan resource alternatif melalui beberapa cara, bergantung pada jenis resource yang ingin ditambahkan. Halaman ini menjelaskan cara menambahkan file resource dasar, cara mengubah lokasi resource, dan cara menggabungkan resource.
Di Jetpack Compose, Anda menentukan UI di Kotlin, bukan tata letak XML.
Namun, Anda tetap menggunakan direktori res/ untuk menyimpan aset statis tingkat aplikasi seperti ikon, font, dan terjemahan. Untuk mempelajari cara mengakses resource ini di
fungsi composable, lihat Resource di Compose.
Lihat halaman berikut untuk mengetahui detail tentang cara membuat jenis resource spesifik:
- Untuk menambahkan file string, lihat Melokalkan UI dengan Translations Editor .
- Untuk menambahkan bitmap, lihat Membuat ikon aplikasi.
- Untuk menambahkan file SVG, baca Menambahkan grafik vektor multi-kepadatan.
Untuk informasi tentang cara mereferensikan resource dari kode aplikasi Anda, lihat Ringkasan resource aplikasi.
Menambahkan file resource XML
Meskipun link halaman sebelumnya menjelaskan alur kerja yang disesuaikan dengan setiap jenis resource, Anda dapat menambahkan file resource XML apa saja dengan mengikuti langkah-langkah berikut:
- Klik modul aplikasi target di jendela Project dalam tampilan Android atau Project.
- Pilih File > New > Android resource file.
Gambar 1. Dialog New Resource File.
- Lengkapi detail dalam dialog:
- File name: Masukkan nama untuk file XML (akhiran
.xmltidak diperlukan). - Resource type: Pilih jenis resource yang ingin Anda buat.
- Root element: Jika ada, pilih elemen XML root untuk file itu. Beberapa jenis resource hanya mendukung satu jenis elemen root. Bergantung pada jenis resource yang dipilih, nilai ini mungkin tidak dapat diedit.
- Source set: Pilih set sumber tempat Anda ingin menyimpan file.
- Directory name: Direktori harus dinamai dengan cara yang spesifik untuk jenis resource dan pengontrol kualitas konfigurasi. Jangan mengedit ini kecuali jika Anda ingin menambahkan pengontrol kualitas konfigurasi ke nama direktori secara manual (sebagai gantinya, gunakan Available qualifiers).
- Available qualifiers: Alih-alih menyertakan pengontrol kualitas konfigurasi secara manual di nama direktori, Anda dapat menambahkannya dengan memilih pengontrol kualitas dari daftar dan mengklik Add
.
- File name: Masukkan nama untuk file XML (akhiran
- Setelah Anda menambahkan semua pengontrol kualitas yang diinginkan, klik OK.
Resource XML kompleks inline
Beberapa resource yang kompleks memerlukan banyak file resource XML. Misalnya, meskipun Compose memiliki API animasi yang andal, Anda mungkin perlu menggunakan vektor drawable animasi, yang memiliki objek vektor drawable dan objek animasi serta membutuhkan setidaknya tiga file XML.
Dalam contoh ini, Anda dapat membuat dan menyimpan ketiga file XML terpisah jika perlu menggunakan kembali salah satu atau beberapa dari ketiganya. Namun, jika file XML tersebut hanya digunakan untuk vektor drawable animasi ini saja, Anda dapat menggunakan format resource inline yang disediakan dalam Android Asset Packaging Tool (AAPT). Dengan AAPT, Anda dapat menentukan ketiga resource dalam satu file XML. Untuk mengetahui informasi selengkapnya, lihat Resource XML kompleks inline.
Menambahkan direktori resource
Untuk menambahkan direktori resource baru, ikuti langkah-langkah berikut:
- Klik modul aplikasi target di jendela Project.
- Pilih File > New > Android resource directory.
Gambar 2. Dialog New Resource Directory.
- Lengkapi detail dalam dialog:
- Directory name: Direktori harus dinamai dengan cara yang spesifik untuk jenis resource dan kombinasi pengontrol kualitas konfigurasi. Jangan mengedit ini kecuali jika Anda ingin menambahkan pengontrol kualitas konfigurasi ke nama direktori secara manual (sebagai gantinya, gunakan Available qualifiers).
- Resource type: Pilih jenis resource yang ingin disertakan dalam direktori.
- Source set: Pilih set sumber tempat Anda ingin menyertakan direktori.
- Available qualifiers: Tidak menyertakan pengontrol kualitas konfigurasi
secara manual di nama direktori, tetapi Anda dapat menambahkannya dengan memilih
pengontrol kualitas dari daftar dan mengklik Add
.
- Setelah Anda menambahkan semua pengontrol kualitas yang diinginkan, klik OK.
Mengubah direktori resource
Secara default, resource Anda terletak di
module-name/src/source-set-name/res/.
Misalnya, resource untuk set sumber utama modul Anda terletak di src/main/res/,
sedangkan resource untuk set sumber debug terletak di src/debug/res/.
Namun, Anda dapat mengubah jalur ini ke lokasi
lain mana pun (relatif terhadap file build.gradle) dengan properti res.srcDirs
dalam blok sourceSets. Contoh:
Groovy
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
Kotlin
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
Anda juga dapat menentukan beberapa direktori resource untuk satu set sumber, lalu alat build akan menggabungkannya bersama. Contoh:
Groovy
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Kotlin
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
Untuk mengetahui informasi selengkapnya, baca tentang set sumber.
Penggabungan resource
Resource dalam file aplikasi akhir Anda dapat berasal dari tiga sumber:
- Set sumber utama (biasanya terletak di
src/main/res/) - Set sumber varian build
- Library Android (AAR)
Jika semua resource dari setiap set sumber atau library sudah unik, semua resource tersebut akan ditambahkan ke aplikasi akhir. Resource dianggap unik jika nama filenya unik di dalam direktori jenis resource dan penentu resource (jika ditentukan).
Jika ada dua atau lebih versi yang cocok untuk resource yang sama, maka hanya satu versi yang disertakan dalam aplikasi akhir. Alat build akan memilih versi mana yang akan dipertahankan berdasarkan urutan prioritas berikut (prioritas tertinggi di sebelah kiri):
varian build > jenis build > ragam produk > set sumber utama > dependensi library
Misalnya, jika set sumber utama berisi:
res/values/strings.xmlres/values-es/strings.xml
Dan jenis build debug berisi:
res/values/strings.xml
Aplikasi akhir akan menyertakan res/values/strings.xml dari jenis build debug
dan res/values-es/strings.xml dari set sumber utama.
Namun, jika konfigurasi build Anda menetapkan beberapa folder resource untuk set sumber tertentu dan terdapat konflik antara sumber tersebut, error akan terjadi dan penggabungan akan gagal karena setiap direktori resource memiliki prioritas yang sama.