Mentre lavoravo con l'xml del layout Android, mi sono imbattuto backgroundTintnell'attributo. Non capisco a cosa serva.
Inoltre cosa è backgroundTintMode??
Mentre lavoravo con l'xml del layout Android, mi sono imbattuto backgroundTintnell'attributo. Non capisco a cosa serva.
Inoltre cosa è backgroundTintMode??
Risposte:
Ho provato varie combinazioni di android:background, android:backgroundTinte android:backgroundTintMode.
android:backgroundTintapplica il filtro colore alla risorsa di android:backgroundquando viene utilizzato insieme a android:backgroundTintMode.
Ecco i risultati:
Ecco il codice se vuoi sperimentare ulteriormente:
<?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:backgroundproprietà deve essere impostata android:backgroundTintaffinché sia visibile TextView. In caso di Button, immagino che abbia già una sorta di sfondo / colore impostato dal framework.
L' backgroundTintattributo ti aiuterà ad aggiungere una tinta (ombra) allo sfondo. Puoi fornire un valore di colore per lo stesso sotto forma di:"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
L' backgroundTintModealtra parte vi aiuterà ad applicare la tinta di fondo. Deve avere valori costanti come src_over, src_in, src_atop,ecc.
Fare riferimento a questo per avere un'idea chiara dei valori costanti che possono essere utilizzati. Cerca l' backgroundTintattributo e la descrizione insieme a vari attributi saranno disponibili.
Non sottolineerò molto la differenza in quanto è già coperta, ma nota quanto segue:
android:backgroundTint android:backgroundTintMode sono disponibili solo in API 21android:backgrounde vuoi cambiare il suo colore predefinito, puoi usarlo android:backgroundTintper aggiungere un'ombra ad esso.esempio
<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 altro esempio
Se provi a cambiare il colore dell'accento FloatingActionButtondell'uso android:backgroundnon noterai un cambiamento, perché è già utilizzato app:srcCompat, quindi per farlo puoi usare android:backgroundTintinvece
Metodo di fusione utilizzato per applicare la tinta di sfondo.
Tinta da applicare sullo sfondo. Deve essere un valore di colore, nella forma di
#rgb,#argb,#rrggbb, o#aarrggbb.Può anche essere un riferimento a una risorsa (nella forma "@ [pacchetto:] tipo: nome") o a un attributo del tema (nella forma "? [Pacchetto:] [tipo:] nome") contenente un valore di questo tipo .
android:backgroundTintsenzaandroid:background, questo secondo TextView non cambia nulla. Tuttavia, provoandroid:backgroundTintin Button, il colore del pulsante sembra lo stesso colore di backgroundTint che ho impostato. Potresti spiegare questi casi?