Saat bekerja dengan layout android xml saya menemukan backgroundTintatribut. Saya tidak mengerti untuk apa.
Juga apa backgroundTintMode??
Saat bekerja dengan layout android xml saya menemukan backgroundTintatribut. Saya tidak mengerti untuk apa.
Juga apa backgroundTintMode??
Jawaban:
Saya menguji berbagai kombinasi android:background, android:backgroundTintdan android:backgroundTintMode.
android:backgroundTintmenerapkan filter warna ke sumber daya android:backgroundsaat digunakan bersama dengan android:backgroundTintMode.
Berikut hasilnya:
Berikut kodenya jika Anda ingin bereksperimen lebih lanjut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:text="Background" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:backgroundTint="#FEFBDE"
android:text="Background tint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:backgroundTint="#FEFBDE"
android:text="Both together" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:background="#37AEE4"
android:backgroundTint="#FEFBDE"
android:backgroundTintMode="multiply"
android:text="With tint mode" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:textSize="45sp"
android:text="Without any" />
</LinearLayout>
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.
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:backgroundTint android:backgroundTintMode hanya tersedia di API 21android:background, dan Anda ingin mengubah warna defaultnya, Anda dapat menggunakan android:backgroundTintuntuk menambahkan bayangan padanya.contoh
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_dialog_email" />
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_dialog_email"
android:backgroundTint="@color/colorAccent" />
Contoh lain
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
Blending mode digunakan untuk menerapkan warna latar belakang.
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:backgroundTinttanpaandroid:background, TextView kedua ini tidak mengubah apa pun. Namun, saya cobaandroid:backgroundTintdi Button, warna tombol terlihat sama dengan warna backgroundTint yang saya set. Bisakah Anda menjelaskan kasus ini?