Sumber daya dapat digambar adalah konsep umum untuk grafis yang dapat digambar pada layar dan bisa ditampilkan dengan API seperti getDrawable(int)
atau diterapkan ke sumber daya XML lainnya dengan atribut seperti android:drawable
dan android:icon
. Ada beberapa jenis sumber daya dapat digambar:
- File Bitmap
- File grafis bitmap (
.png
,.jpg
, atau.gif
). MembuatBitmapDrawable
. - File Nine-Patch
- File PNG dengan area yang dapat direntangkan sehingga ukuran gambar bisa diubah berdasarkan materi (
.9.png
). MembuatNinePatchDrawable
. - Daftar Layer
- Sumber daya dapat digambar yang mengelola serangkaian sumber daya dapat digambar lainnya. Ini digambar dalam urutan larik, sehingga elemen dengan indeks terbesar digambar pada paling atas. Membuat
LayerDrawable
. - Daftar status
- File XML yang merujuk pada berbagai grafik bitmap untuk berbagai kondisi (misalnya, menggunakan gambar yang berbeda ketika satu tombol ditekan). Membuat
StateListDrawable
. - Daftar Tingkat
- File XML yang menentukan sumber daya dapat digambar yang mengelola sejumlah sumber daya dapat digambar alternatif, masing-masing disertai nilai numerik maksimum. Membuat
LevelListDrawable
. - Sumber Daya Dapat Digambar untuk Transisi
- File XML yang menentukan sumber daya dapat digambar yang bisa memudar bersilang antara dua sumber daya dapat digambar. Membuat
TransitionDrawable
. - Sumber Daya Dapat Digambar untuk Sisipan
- File XML yang menentukan bahwa dapat digambar yang menyisipkan sumber daya dapat digambar lainnya dengan jarak yang telah ditentukan. Hal ini bermanfaat saat Tampilan memerlukan latar belakang dapat digambar yang lebih kecil dari ikatan Tampilan sesungguhnya.
- Sumber Daya Dapat Digambar untuk Klip
- File XML yang menentukan sumber daya dapat digambar yang mengklip sumber daya Dapat Digambar lainnya berdasarkan nilai tingkat saat ini. Membuat
ClipDrawable
. - Sumber Daya Dapat Digambar untuk Skala
- File XML yang menentukan sumber daya dapat digambar yang mengubah ukuran sumber daya Dapat Digambar lain berdasarkan nilai tingkat saat ini. Membuat
ScaleDrawable
- Sumber Daya Dapat Digambar untuk Bentuk
- File XML yang menentukan bentuk geometris, termasuk warna dan gradien. Membuat
GradientDrawable
.
Lihat juga dokumen Sumber Daya Animasi untuk cara membuat AnimationDrawable
.
Catatan: Sumber daya warna juga dapat digunakan sebagai sumber daya dapat digambar pada XML. Misalnya, ketika membuat sebuah daftar status sumber daya dapat digambar, Anda dapat mereferensikan sebuah sumber daya warna untuk atribut android:drawable
(android:drawable="@color/green"
).
Bitmap
Gambar bitmap. Android mendukung file bitmap dalam tiga format: .png
(preferensi), .jpg
(berterima), .gif
(tidak dikehendaki).
Anda dapat merujuk file bitmap secara langsung, menggunakan nama file sebagai ID sumber daya, atau buat ID sumber daya alias di XML.
Catatan: File bitmap mungkin dioptimalkan secara otomatis dengan kompresi gambar utuh oleh alat aapt
selama proses membangun. Misalnya, PNG warna sejati yang tidak memerlukan lebih dari 256 warna mungkin diubah ke PNG 8-bit dengan palet warna. Ini akan menghasilkan gambar dengan kualitas setara tetapi membutuhkan memori lebih sedikit. Perhatikan bahwa biner gambar yang berada dalam direktori dapat mengubah selama pembangunan. Jika Anda berencana membaca gambar sebagai aliran bit untuk mengonversinya ke bitmap, taruh gambar dalam folder res/raw/
, di situ tidak akan dioptimalkan.
File bitmap
File bitmap adalah file .png
, .jpg
, atau .gif
. Android membuat sumber daya Drawable
untuk setiap file ini ketika Anda menyimpannya dalam direktori res/drawable/
.
- lokasi file:
res/drawable/filename.png
(.png
,.jpg
, atau.gif
)
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
BitmapDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- contoh:
- Dengan gambar disimpan pada
res/drawable/myimage.png
, XML tata letak ini menerapkan gambar ke Tampilan:<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />
Kode aplikasi berikut mengambil gambar sebagai
Drawable
:Kotlin
val drawable: Drawable? = ResourcesCompat.
getDrawable
(resources, R.drawable.myimage, null)Java
Resources res =
getResources()
; Drawable drawable = ResourcesCompat.getDrawable
(res, R.drawable.myimage, null); - lihat juga:
Bitmap XML
Bitmap XML adalah sumber daya yang ditentukan pada XML yang mengarah pada file bitmap. Dampaknya adalah alias untuk bitmap raw. XML dapat menentukan properti tambahan untuk bitmap seperti dithering dan pemetakan.
Catatan: Anda bisa menggunakan elemen <bitmap>
sebagai anak dari <item>
. Misalnya, ketika menciptakan daftar status atau daftar layer, Anda dapat mengecualikan android:drawable
atribut dari elemen <item>
dan menyarangkan <bitmap>
di dalamnya yang menentukan item yang dapat digambar.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
BitmapDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@[package:]drawable/drawable_resource" android:antialias=["true" | "false"] android:dither=["true" | "false"] android:filter=["true" | "false"] android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | "fill_vertical" | "center_horizontal" | "fill_horizontal" | "center" | "fill" | "clip_vertical" | "clip_horizontal"] android:mipMap=["true" | "false"] android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
- elemen:
- contoh:
-
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/icon" android:tileMode="repeat" />
- lihat juga:
Nine-Patch
NinePatch
adalah gambar PNG tempat Anda bisa menentukan area yang dapat direntangkan yang diskalakan Android ketika materi dalam Tampilan melebihi batas gambar normal. Anda biasanya menetapkan gambar jenis ini sebagai latar belakang tampilan yang setidaknya memiliki satu dimensi yang disetel ke "wrap_content"
, dan bila Tampilan membesar guna mengakomodasi materi, gambar Nine-Patch juga diskalakan sesuai dengan ukuran Tampilannya. Contoh penggunaan gambar Nine-Patch adalah latar belakang yang digunakan oleh widget Button
standar Android, yang harus membentang guna mengakomodasi teks (atau gambar) di dalam tombol.
Sama dengan bitmap biasa, Anda dapat merujuk file Nine-Patch secara langsung dari sumber daya yang ditentukan oleh XML.
Untuk pembahasan lengkap mengenai cara membuat file Nine-patch dengan area yang dapat direntangkan, lihat dokumen Grafis 2D.
File Nine-patch
- lokasi file:
res/drawable/filename.9.png
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
NinePatchDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- contoh:
- Dengan gambar disimpan pada
res/drawable/myninepatch.9.png
, XML tata letak ini menerapkan Nine-Patch ke Tampilan:<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/myninepatch" />
- lihat juga:
Nine-Patch XML
Nine-Patch XML adalah sumber daya yang didefinisikan dalam XML yang menunjuk ke file Nine-Patch. XML dapat menetapkan dithering untuk gambar.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
NinePatchDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <nine-patch xmlns:android="http://schemas.android.com/apk/res/android" android:src="@[package:]drawable/drawable_resource" android:dither=["true" | "false"] />
- elemen:
- contoh:
-
<?xml version="1.0" encoding="utf-8"?> <nine-patch xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/myninepatch" android:dither="false" />
Daftar layer
LayerDrawable
adalah objek yang dapat digambar yang mengelola serangkaian sumber daya lain yang dapat digambar. Setiap sumber daya dapat digambar yang ada dalam daftar akan digambar sesuai urutan daftar—urutan terakhir sumber daya dapat digambar akan digambar di bagian atas.
Masing-masing sumber daya dapat digambar ditunjukkan dengan elemen <item>
di dalam elemen <layer-list>
tunggal.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
LayerDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@[package:]drawable/drawable_resource" android:id="@[+][package:]id/resource_name" android:top="dimension" android:right="dimension" android:bottom="dimension" android:left="dimension" /> </layer-list>
- elemen:
- contoh:
- File XML disimpan di
res/drawable/layers.xml
:<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/android_red" android:gravity="center" /> </item> <item android:top="10dp" android:left="10dp"> <bitmap android:src="@drawable/android_green" android:gravity="center" /> </item> <item android:top="20dp" android:left="20dp"> <bitmap android:src="@drawable/android_blue" android:gravity="center" /> </item> </layer-list>
Perhatikan bahwa contoh ini menggunakan elemen
<bitmap>
tersarang untuk menentukan sumber daya dapat digambar untuk setiap item dengan gravitasi "pusat". Untuk memastikan bahwa tidak satu pun gambar diskalakan sesuai ukuran kontainernya, dikarenakan perubahan ukuran oleh gambar offset.XML layout ini menerapkan yang sumber daya dapat digambar ke Tampilan:
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/layers" />
Hasilnya adalah tumpukan gambar offset yang meningkat:
- lihat juga:
Daftar status
StateListDrawable
adalah objek dapat digambar yang ditentukan pada XML menggunakan beberapa gambar berbeda untuk merepresentasikan grafis yang sama, bergantung pada status objek. Misalnya, sebuah widget Button
bisa muncul di satu atau beberapa status berbeda (ditekan, terfokus, atau tidak keduanya) dan, menggunakan daftar status sumber daya dapat digambar, Anda dapat menyediakan gambar latar belakang yang berbeda untuk masing-masing status.
Anda dapat menjelaskan daftar status pada file XML. Setiap grafis ditunjukkan dengan elemen <item>
di dalam elemen <selector>
tunggal. Setiap <item>
menggunakan berbagai atribut untuk menjelaskan status yang harus digunakan sebagai grafis untuk sumber daya dapat digambar.
Selama perubahan status, daftar status akan dialihkan dari bagian atas ke bawah dan item pertama yang cocok dengan status saat ini akan digunakan—pemilihan ini tidak didasarkan pada "kecocokan terbaik," tetapi cukup dengan item pertama yang memenuhi kriteria minimum status tersebut.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
StateListDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize=["true" | "false"] android:dither=["true" | "false"] android:variablePadding=["true" | "false"] > <item android:drawable="@[package:]drawable/drawable_resource" android:state_pressed=["true" | "false"] android:state_focused=["true" | "false"] android:state_hovered=["true" | "false"] android:state_selected=["true" | "false"] android:state_checkable=["true" | "false"] android:state_checked=["true" | "false"] android:state_enabled=["true" | "false"] android:state_activated=["true" | "false"] android:state_window_focused=["true" | "false"] /> </selector>
- elemen:
- contoh:
- File XML disimpan di
res/drawable/button.xml
:<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/button_focused" /> <!-- focused --> <item android:state_hovered="true" android:drawable="@drawable/button_focused" /> <!-- hovered --> <item android:drawable="@drawable/button_normal" /> <!-- default --> </selector>
XML layout ini menerapkan daftar status sumber daya dapat digambar untuk Tombol:
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/button" />
- lihat juga:
Daftar tingkat
Sumber daya dapat digambar yang mengelola sejumlah sumber daya dapat digambar alternatif, masing-masing diberikan nilai numerik maksimum. Menyetel nilai tingkat sumber daya dapat digambar dengan setLevel()
memuat sumber daya dapat digambar dalam daftar nilai tingkat yang memiliki nilai android:maxLevel
lebih besar dari atau sama dengan nilai yang diteruskan ke metode.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
LevelListDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/drawable_resource" android:maxLevel="integer" android:minLevel="integer" /> </level-list>
- elemen:
- contoh:
-
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/status_off" android:maxLevel="0" /> <item android:drawable="@drawable/status_on" android:maxLevel="1" /> </level-list>
Setelah ini diterapkan ke
View
, tingkatnya dapat diubah dengansetLevel()
atausetImageLevel()
. - lihat juga:
Sumber daya dapat digambar untuk transisi
TransitionDrawable
adalah objek dapat digambar yang bisa berjalan secara bersilang antara dua sumber daya dapat digambar.
Masing-masing sumber daya dapat digambar ditunjukkan dengan elemen <item>
di dalam elemen <transition>
tunggal. Tidak lebih dari dua item yang didukung. Untuk transisi maju, panggil startTransition()
. Untuk transisi mundur, panggil reverseTransition()
.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
TransitionDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@[package:]drawable/drawable_resource" android:id="@[+][package:]id/resource_name" android:top="dimension" android:right="dimension" android:bottom="dimension" android:left="dimension" /> </transition>
- elemen:
- contoh:
- File XML disimpan di
res/drawable/transition.xml
:<?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/on" /> <item android:drawable="@drawable/off" /> </transition>
XML layout ini menerapkan yang sumber daya dapat digambar ke Tampilan:
<ImageButton android:id="@+id/button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/transition" />
Dan kode berikut ini menunjukkan transisi 500ms dari item pertama ke yang kedua:
Kotlin
val button: ImageButton = findViewById(R.id.button) val drawable: Drawable = button.drawable if (drawable is TransitionDrawable) { drawable.startTransition(500) }
Java
ImageButton button = (ImageButton) findViewById(R.id.button); Drawable drawable = button.getDrawable(); if (drawable instanceof TransitionDrawable) { ((TransitionDrawable) drawable).startTransition(500); }
- lihat juga:
Sumber daya dapat digambar untuk sisipan
Sumber daya dapat digambar yang didefinisikan dalam XML yang menyisipkan sumber daya dapat digambar lainnya dengan jarak tertentu. Hal ini bermanfaat saat Tampilan memerlukan latar belakang yang lebih kecil dari ikatan Tampilan sesungguhnya.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
InsetDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/drawable_resource" android:insetTop="dimension" android:insetRight="dimension" android:insetBottom="dimension" android:insetLeft="dimension" />
- elemen:
- contoh:
-
<?xml version="1.0" encoding="utf-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/background" android:insetTop="10dp" android:insetLeft="10dp" />
- lihat juga:
Sumber daya dapat digambar untuk klip
Sumber daya dapat digambar yang ditentukan dalam XML yang mengklip sumber daya dapat digambar lain berdasarkan tingkatnya saat ini. Anda dapat mengontrol seberapa banyak sumber daya dapat digambar anak yang diklip dengan lebar dan tinggi berdasarkan tingkatnya, serta gravitasi untuk mengontrol lokasinya dalam keseluruhan kontainer. Yang paling sering digunakan untuk menjalankan sesuatu seperti bilah kemajuan.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
ClipDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/drawable_resource" android:clipOrientation=["horizontal" | "vertical"] android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | "fill_vertical" | "center_horizontal" | "fill_horizontal" | "center" | "fill" | "clip_vertical" | "clip_horizontal"] />
- elemen:
- contoh:
- File XML disimpan di
res/drawable/clip.xml
:<?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/android" android:clipOrientation="horizontal" android:gravity="left" />
Tata letak XML berikut menerapkan klip yang dapat digambar ke Tampilan:
<ImageView android:id="@+id/image" android:background="@drawable/clip" android:layout_height="wrap_content" android:layout_width="wrap_content" />
Kode berikut mendapatkan sumber daya dapat digambar dan meningkatkan jumlah klip untuk berangsur-angsur memunculkan gambar:
Kotlin
val imageview: ImageView = findViewById(R.id.image) val drawable: Drawable = imageview.background if (drawable is ClipDrawable) { drawable.level = drawable.level + 1000 }
Java
ImageView imageview = (ImageView) findViewById(R.id.image); Drawable drawable = imageview.getBackground(); if (drawable instanceof CLipDrawable) { ((ClipDrawable)drawable).setLevel(drawable.getLevel() + 1000); }
Meningkatkan tingkat ini akan mengurangi jumlah klip dan perlahan-lahan memunculkan gambar. Ini pada tingkat 7000:
Catatan: Tingkat default-nya adalah 0, yang sepenuhnya terpotong sehingga gambar tidak terlihat. Bila tingkatnya 10.000, gambar tidak diklip dan terlihat seluruhnya.
- lihat juga:
Sumber daya dapat digambar untuk skala
Sumber daya dapat digambar yang didefinisikan dalam XML yang mengubah ukuran sumber daya dapat digambar lainnya berdasarkan tingkat saat ini.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
ScaleDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/drawable_resource" android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" | "fill_vertical" | "center_horizontal" | "fill_horizontal" | "center" | "fill" | "clip_vertical" | "clip_horizontal"] android:scaleHeight="percentage" android:scaleWidth="percentage" />
- elemen:
- contoh:
-
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/logo" android:scaleGravity="center_vertical|center_horizontal" android:scaleHeight="80%" android:scaleWidth="80%" />
- lihat juga:
Sumber daya dapat digambar untuk bentuk
Ini adalah bentuk umum yang didefinisikan dalam XML.
- lokasi file:
res/drawable/filename.xml
Nama file digunakan sebagai ID sumber daya.- jenis data sumber daya yang dikompilasi:
- Pointer sumber daya ke
GradientDrawable
. - referensi sumber daya:
-
Dalam Java:
R.drawable.filename
Dalam XML:@[package:]drawable/filename
- sintaks:
-
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] > <corners android:radius="integer" android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" /> <gradient android:angle="integer" android:centerX="float" android:centerY="float" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" | "radial" | "sweep"] android:useLevel=["true" | "false"] /> <padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer" /> <size android:width="integer" android:height="integer" /> <solid android:color="color" /> <stroke android:width="integer" android:color="color" android:dashWidth="integer" android:dashGap="integer" /> </shape>
- elemen:
- contoh:
- File XML disimpan di
res/drawable/gradient_box.xml
:<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /> </shape>
Layout XML ini menggunakan sumber daya dapat digambar untuk bentuk ke Tampilan:
<TextView android:background="@drawable/gradient_box" android:layout_height="wrap_content" android:layout_width="wrap_content" />
Kode aplikasi ini membuat sumber daya dapat digambar untuk bentuk dan menerapkannya ke Tampilan:
Kotlin
val shape: Drawable? =
getDrawable
(resources
, R.drawable.gradient_box,getTheme()
) val tv: TextView = findViewById(R.id.textview) tv.background = shapeJava
Resources res =
getResources()
; Drawable shape = ResourcesCompat.getDrawable
(res, R.drawable.gradient_box,getTheme()
); TextView tv = (TextView)findViewById(R.id.textview); tv.setBackground(shape); - lihat juga: