Während der Arbeit mit dem Android Layout XML stieß ich auf backgroundTintAttribut. Ich verstehe nicht, wofür.
Auch was ist backgroundTintMode??
Während der Arbeit mit dem Android Layout XML stieß ich auf backgroundTintAttribut. Ich verstehe nicht, wofür.
Auch was ist backgroundTintMode??
Antworten:
Getestet habe ich verschiedene Kombinationen von android:background, android:backgroundTintund android:backgroundTintMode.
android:backgroundTintWendet den Farbfilter auf die Ressource an, android:backgroundwenn er zusammen mit verwendet wird android:backgroundTintMode.
Hier sind die Ergebnisse:
Hier ist der Code, wenn Sie weiter experimentieren möchten:
<?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:backgroundEigenschaft muss festgelegt werden, damit die android:backgroundTintsichtbar wird TextView. Im Falle von Button, vermute ich, dass es bereits eine Art Hintergrund / Farbe hat, die vom Framework festgelegt wird.
Das backgroundTintAttribut hilft Ihnen, dem Hintergrund einen Farbton hinzuzufügen. Sie können dafür einen Farbwert in Form von - angeben"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Das backgroundTintModehilft Ihnen andererseits, die Hintergrundtönung anzuwenden. Es muss konstante Werte wie src_over, src_in, src_atop,etc. haben.
Lesen Sie dies , um eine klare Vorstellung von den konstanten Werten zu erhalten, die verwendet werden können. Die Suche nach dem backgroundTintAttribut und der Beschreibung sowie verschiedene Attribute werden verfügbar sein.
Ich werde nicht viel auf den Unterschied eingehen, da er bereits behandelt wird, aber beachte Folgendes:
android:backgroundTint android:backgroundTintMode sind nur bei API 21 verfügbarandroid:background, und die Standardfarbe ändern möchten, können android:backgroundTintSie ihm einen Farbton hinzufügen.Beispiel
<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" />
Ein anderes Beispiel
Wenn Sie versuchen, die Akzentfarbe der FloatingActionButtonVerwendung zu android:backgroundändern, werden Sie keine Änderung bemerken, da dies bereits verwendet app:srcCompatwird. Um dies zu tun, können Sie android:backgroundTintstattdessen verwenden
Mischmodus zum Anwenden der Hintergrundfarbe.
Farbton für den Hintergrund. Muss ein Farbwert sein, der in der Form
#rgb,#argb,#rrggbb, oder#aarrggbb.Dies kann auch ein Verweis auf eine Ressource (in der Form "@ [Paket:] Typ: Name") oder ein Themenattribut (in der Form "? [Paket:] [Typ:] Name") sein, die einen Wert dieses Typs enthält .
android:backgroundTintohne verwendenandroid:background. Ich versuche jedochandroid:backgroundTintin Button, dass die Farbe der Button der Farbe von backgroundTint entspricht, die ich eingestellt habe. Können Sie diese Fälle erklären?