En travaillant avec la mise en page Android xml, je suis tombé sur l' backgroundTintattribut. Je ne comprends pas à quoi ça sert.
Aussi qu'est-ce que c'est backgroundTintMode??
En travaillant avec la mise en page Android xml, je suis tombé sur l' backgroundTintattribut. Je ne comprends pas à quoi ça sert.
Aussi qu'est-ce que c'est backgroundTintMode??
Réponses:
J'ai testé différentes combinaisons de android:background, android:backgroundTintet android:backgroundTintMode.
android:backgroundTintapplique le filtre de couleur à la ressource de android:backgroundlorsqu'il est utilisé avecandroid:backgroundTintMode .
Voici les résultats:
Voici le code si vous souhaitez expérimenter davantage:
<?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:backgroundpropriété doit être définie pour que le android:backgroundTintsoit visible sur TextView. Dans le cas du Button, je suppose qu'il a déjà une sorte d'arrière-plan / couleur définie par le cadre.
L' backgroundTintattribut vous aidera à ajouter une teinte (nuance) à l'arrière-plan. Vous pouvez fournir une valeur de couleur pour le même sous la forme de -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Le backgroundTintMode, d'autre part, vous aidera à appliquer la teinte de fond. Il doit avoir des valeurs constantes comme src_over, src_in, src_atop,etc.
Reportez - vous à ceci pour avoir une idée claire des valeurs constantes qui peuvent être utilisées. La recherche de l' backgroundTintattribut et la description ainsi que divers attributs seront disponibles.
Je n'insisterai pas beaucoup sur la différence car elle est déjà couverte, mais notez ce qui suit:
android:backgroundTint android:backgroundTintMode sont uniquement disponibles à l'API 21android:backgroundet que vous souhaitez changer sa couleur par défaut, vous pouvez l'utiliser android:backgroundTintpour lui ajouter une nuance.exemple
<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" />
Un autre exemple
Si vous essayez de changer la couleur d'accentuation de l' FloatingActionButtonutilisation, android:backgroundvous ne remarquerez pas de changement, c'est parce qu'il est déjà utilisé app:srcCompat, donc pour ce faire, vous pouvez utiliser à la android:backgroundTintplace
Mode de fusion utilisé pour appliquer la teinte d'arrière-plan.
Teinte à appliquer à l'arrière-plan. Doit être une valeur de couleur, sous la forme de
#rgb,#argb,#rrggbbou#aarrggbb.Cela peut aussi être une référence à une ressource (sous la forme "@ [package:] type: nom") ou à un attribut de thème (sous la forme "? [Package:] [type:] nom") contenant une valeur de ce type .
android:backgroundTintsansandroid:background, ce deuxième TextView ne change rien. Cependant, j'essaieandroid:backgroundTintdans Button, la couleur du bouton ressemble à la même couleur de backgroundTint que j'ai définie. Pouvez-vous expliquer ces cas?