Resource aplikasi seperti bitmap dan tata letak 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.
Lihat halaman berikut untuk mengetahui detail tentang cara membuat jenis resource spesifik:
- Untuk menambahkan file tata letak, baca Membuat UI dengan Layout Editor.
- Untuk menambahkan file string, baca Melokalkan UI dengan Translations Editor.
- Untuk menambahkan bitmap, baca Membuat ikon aplikasi dengan Image Asset Studio.
- Untuk menambahkan file SVG, baca Menambahkan grafik vektor multi-kepadatan.
Untuk informasi tentang cara mereferensikan resource dari kode aplikasi, baca 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 pada jendela Project di tampilan Android atau Project.
- Pilih File > New > Android resource file.
- Lengkapi detail dalam dialog:
- File name: Masukkan nama untuk file XML (akhiran
.xml
tidak 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: Tidak menyertakan pengontrol kualitas konfigurasi secara manual di nama direktori, tetapi 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.
Tips: Untuk membuka versi sederhana dialog New Resource File yang khusus untuk jenis resource yang ingin ditambahkan, klik kanan direktori resource yang ada dalam folder res, lalu pilih New > type-name resource file.
Resource XML kompleks inline
Beberapa resource yang kompleks memerlukan banyak file resource XML. Misalnya, vektor drawable animasi memiliki sebuah objek vektor drawable dan sebuah objek animasi, yang 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 menetapkan ketiga resource ini dalam satu file XML. Untuk informasi lebih lanjut, 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.
- 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 dua parameter berikut, direktori jenis resource dan penentu resource (jika ditentukan).
Jika ada dua atau lebih versi yang cocok untuk resource yang sama, hanya satu versi yang akan 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/layout/example.xml
res/layout-land/example.xml
Dan jenis build debug berisi:
res/layout/example.xml
Aplikasi akhir akan menyertakan res/layout/example.xml
dari jenis build debug
dan res/layout-land/example.xml
dari set sumber utama.
Namun, jika konfigurasi build Anda menetapkan beberapa folder resource untuk set sumber tertentu dan terdapat konflik antara resource tersebut, error akan terjadi dan penggabungan akan gagal karena setiap direktori resource memiliki prioritas yang sama.