web-dev-qa-db-fra.com

Quelle est la différence entre les attributs background, backgroundTint et backgroundTintMode dans Android layout xml?

Lors de l'utilisation de Android layout XML, je suis tombé sur l'attribut backgroundTint. Je ne comprends pas à quoi ça sert.

Aussi qu'est-ce que backgroundTintMode ??

100
Sarasranglt

J'ai testé diverses combinaisons de Android:background, Android:backgroundTint et Android:backgroundTintMode.

Android:backgroundTint applique le filtre de couleur à la ressource Android:background lorsqu'il est utilisé avec Android:backgroundTintMode.

Voici les résultats:

Tint Check

Voici le code si vous voulez 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>
82
Yogesh Umesh Vaity

L'attribut backgroundTint vous aidera à ajouter une teinte (ombre) à l'arrière-plan. Vous pouvez fournir une valeur de couleur pour la même chose sous la forme - "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

La backgroundTintMode vous aidera quant à elle à appliquer la teinte de fond. Il doit avoir des valeurs constantes comme src_over, src_in, src_atop, etc.

Reportez-vous à this pour avoir une idée claire des valeurs constantes pouvant être utilisées. Recherchez l'attribut backgroundTint et la description ainsi que divers attributs seront disponibles.

10
Samridhi

BackgroundTint fonctionne comme filtre de couleur.

FEFBDE comme teinte

37AEE4 comme toile de fond

Essayez de voir la différence par commentaire/fond et vérifiez le résultat lorsque les deux sont définis.

4
ZAN

Android: backgroundTintMode

Mode de fusion utilisé pour appliquer la teinte de fond.

Android: backgroundTint

Teinte à appliquer à l'arrière-plan. Doit être une valeur de couleur, sous la forme #rgb, #argb, #rrggbb ou #aarrggbb.

Cela peut également ê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 .

3
IntelliJ Amiya