Dalam contoh TextView kedua Anda, saya bertanya-tanya jika hanya menggunakan android:backgroundTinttanpa android:background, TextView kedua ini tidak mengubah apa pun. Namun, saya coba android:backgroundTintdi Button, warna tombol terlihat sama dengan warna backgroundTint yang saya set. Bisakah Anda menjelaskan kasus ini?
Vinh Nguyen
@VinhNguyen, android:backgroundproperti harus disetel android:backgroundTintagar terlihat di TextView. Dalam kasus ini Button, saya menduga itu sudah memiliki semacam latar belakang / warna yang ditetapkan oleh kerangka kerja.
Yogesh Umesh Vaity
13
The backgroundTintatribut akan membantu Anda untuk menambahkan warna (warna) ke latar belakang. Anda dapat memberikan nilai warna yang sama dalam bentuk -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Di backgroundTintModesisi lain akan membantu Anda menerapkan warna latar belakang. Itu harus memiliki nilai konstan seperti src_over, src_in, src_atop,dll.
Lihat ini untuk mendapatkan gambaran yang jelas tentang nilai konstanta yang dapat digunakan. Cari backgroundTintatribut dan deskripsi bersama dengan berbagai atribut akan tersedia.
Saya tidak akan terlalu menekankan perbedaannya karena sudah dibahas, tetapi perhatikan hal di bawah ini:
android:backgroundTintandroid:backgroundTintMode hanya tersedia di API 21
Jika Anda memiliki widget dengan latar belakang png / vector drawable yang disetel android:background, dan Anda ingin mengubah warna defaultnya, Anda dapat menggunakan android:backgroundTintuntuk menambahkan bayangan padanya.
Jika Anda mencoba mengubah warna aksen FloatingActionButtonpenggunaan android:backgroundAnda tidak akan melihat perubahan, itu karena sudah digunakan app:srcCompat, jadi untuk melakukan itu Anda dapat menggunakan android:backgroundTintsebagai gantinya
Pewarnaan untuk diterapkan ke latar belakang. Harus menjadi nilai warna, dalam bentuk #rgb, #argb, #rrggbb, atau #aarrggbb.
Ini juga bisa menjadi referensi ke sumber daya (dalam bentuk "@ [package:] type: name") atau atribut tema (dalam bentuk "? [Package:] [type:] name") yang berisi nilai jenis ini .
android:backgroundTint
tanpaandroid:background
, TextView kedua ini tidak mengubah apa pun. Namun, saya cobaandroid:backgroundTint
di Button, warna tombol terlihat sama dengan warna backgroundTint yang saya set. Bisakah Anda menjelaskan kasus ini?android:background
properti harus disetelandroid:backgroundTint
agar terlihat diTextView
. Dalam kasus iniButton
, saya menduga itu sudah memiliki semacam latar belakang / warna yang ditetapkan oleh kerangka kerja.The
backgroundTint
atribut akan membantu Anda untuk menambahkan warna (warna) ke latar belakang. Anda dapat memberikan nilai warna yang sama dalam bentuk -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Di
backgroundTintMode
sisi lain akan membantu Anda menerapkan warna latar belakang. Itu harus memiliki nilai konstan sepertisrc_over, src_in, src_atop,
dll.Lihat ini untuk mendapatkan gambaran yang jelas tentang nilai konstanta yang dapat digunakan. Cari
backgroundTint
atribut dan deskripsi bersama dengan berbagai atribut akan tersedia.sumber
Saya tidak akan terlalu menekankan perbedaannya karena sudah dibahas, tetapi perhatikan hal di bawah ini:
android:backgroundTint
android:backgroundTintMode
hanya tersedia di API 21android:background
, dan Anda ingin mengubah warna defaultnya, Anda dapat menggunakanandroid:backgroundTint
untuk menambahkan bayangan padanya.contoh
Contoh lain
Jika Anda mencoba mengubah warna aksen
FloatingActionButton
penggunaanandroid:background
Anda tidak akan melihat perubahan, itu karena sudah digunakanapp:srcCompat
, jadi untuk melakukan itu Anda dapat menggunakanandroid:backgroundTint
sebagai gantinyasumber
BackgroundTint berfungsi sebagai filter warna.
FEFBDE sebagai tint
37AEE4 sebagai latar belakang
Coba lihat perbedaannya dengan comment tint / background dan periksa outputnya jika keduanya sudah diatur.
sumber
android: backgroundTintMode
android: backgroundTint
sumber