page.title=Bekerja dengan Drawable @jd:body
Kemampuan berikut untuk drawable membantu Anda mengimplementasikan desain bahan dalam aplikasi Anda:
Pelajaran ini menampilkan cara menggunakan fitur-fitur ini dalam aplikasi Anda.
Dengan Android 5.0 (API level 21) ke atas, Anda bisa mewarnai bitmap dan sembilan-tambalan yang didefinisikan sebagai
alpha-mask. Anda bisa mewarnainya dengan sumber daya warna atau atribut tema yang mencocokkan ke
sumber daya warna (misalnya, ?android:attr/colorPrimary
). Biasanya, Anda membuat aset ini
hanya sekali dan mewarnainya secara otomatis agar cocok dengan tema Anda.
Anda bisa menerapkan warna ke objek {@link android.graphics.drawable.BitmapDrawable} atau {@link
android.graphics.drawable.NinePatchDrawable} dengan metode {@code setTint()}. Anda juga bisa
mengatur warna dan mode dalam layout dengan atribut android:tint
dan
android:tintMode
.
Android Support Library r21 ke atas menyertakan kelas {@link android.support.v7.graphics.Palette}, yang memungkinkan Anda mengekstrak warna mencolok dari gambar. Kelas ini mengekstrak warna mencolok berikut:
Untuk mengekstrak warna-warna ini, teruskan objek {@link android.graphics.Bitmap} ke metode statis {@link android.support.v7.graphics.Palette#generate Palette.generate()} dalam thread latar belakang tempat Anda memuat gambar. Jika Anda tidak bisa menggunakan thread itu, panggil metode {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} dan sediakan listener sebagai gantinya.
Anda bisa mengambil warna mencolok dari gambar dengan metode getter di kelas
Palette
, misalnya Palette.getVibrantColor
.
Untuk menggunakan kelas {@link android.support.v7.graphics.Palette} dalam proyek Anda, tambahkan dependensi Gradle berikut ke modul aplikasi Anda:
dependencies { ... compile 'com.android.support:palette-v7:21.0.0' }
Untuk informasi selengkapnya, lihat referensi API untuk kelas {@link android.support.v7.graphics.Palette}.
Grafis Vektor Android
Di Android 5.0 (API Level 21) ke atas, Anda bisa mendefinisikan drawable vektor, yang berubah skala tanpa
kehilangan definisi. Anda hanya memerlukan satu file aset per gambar vektor, bukan file aset untuk
setiap densitas layar seperti pada gambar bitmap. Untuk membuat gambar vektor, Anda mendefinisikan detail
bentuknya dalam sebuah elemen XML <vector>
.
Contoh berikut mendefinisikan gambar vektor berbentuk hati:
<!-- res/drawable/heart.xml --> <vector xmlns:android="http://schemas.android.com/apk/res/android" <!-- intrinsic size of the drawable --> android:height="256dp" android:width="256dp" <!-- size of the virtual canvas --> android:viewportWidth="32" android:viewportHeight="32"> <!-- draw a path --> <path android:fillColor="#8fff" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z" /> </vector>
Gambar vektor direpresentasikan di Android sebagai objek {@link android.graphics.drawable.VectorDrawable}.
Untuk informasi selengkapnya tentang sintaks pathData
, lihat Referensi Path SVG. Untuk informasi selengkapnya
tentang menganimasikan properti drawable vektor, lihat
Menganimasikan Drawable Vektor.