Menambahkan resource aplikasi

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 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:

  1. Klik modul aplikasi target pada jendela Project di tampilan Android atau Project.

  2. Pilih File > New > Android resource file.

    Gambar 1. Dialog New Resource File.

  3. 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 .
  4. 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:

  1. Klik modul aplikasi target di jendela Project.

  2. Pilih File > New > Android resource directory.

    Gambar 2. Dialog New Resource Directory.

  3. 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 .
  4. 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.