Працюючи з андроїд макетом xml, я натрапив на backgroundTint
атрибут. Я не розумію, що таке.
Також що є backgroundTintMode
??
Працюючи з андроїд макетом xml, я натрапив на backgroundTint
атрибут. Я не розумію, що таке.
Також що є backgroundTintMode
??
Відповіді:
Я випробував різні комбінації android:background
, android:backgroundTint
і android:backgroundTintMode
.
android:backgroundTint
застосовує кольоровий фільтр до ресурсу, android:background
коли використовується разом із android:backgroundTintMode
.
Ось результати:
Ось код, якщо ви хочете експериментувати далі:
<?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:background
потрібно встановити властивість для того, android:backgroundTint
щоб його було видно TextView
. У разі Button
, я здогадуюсь, що він вже має якийсь фон / колір, встановлений рамкою.
backgroundTint
Атрибут допоможе вам додати відтінок (тінь) на задній план. Можна вказати значення кольору для того ж у вигляді -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
З backgroundTintMode
іншого боку, вам допоможе нанести фоновий відтінок. Він повинен мати постійні значення, як src_over, src_in, src_atop,
і т.д.
Зверніться до цього, щоб отримати чітке уявлення про постійні значення, які можна використовувати. Шукати backgroundTint
атрибут та опис разом із різними атрибутами буде доступно.
Я не буду наголошувати на різниці, оскільки вона вже охоплена, але зауважте нижче:
android:backgroundTint
android:backgroundTintMode
доступні лише в API 21android:background
, який ви можете встановити , і ви хочете змінити його колір за замовчуванням, тоді ви можете використовувати його, android:backgroundTint
щоб додати відтінок.приклад
<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" />
Ще один приклад
Якщо ви спробуєте змінити колір наголосу на FloatingActionButton
використанні, android:background
ви не помітите змін, тому що це вже використовується app:srcCompat
, тому для цього ви можете використовувати android:backgroundTint
замість цього
Режим накладання використовується для нанесення фонового відтінку.
Відтінок для нанесення на фон. Повинно бути значення кольору у вигляді
#rgb
,#argb
,#rrggbb
або#aarrggbb
.Це також може бути посилання на ресурс (у формі "@ [пакет:] тип: ім'я") або атрибут теми (у формі "? [Пакет:] [тип:] ім'я"), що містить значення цього типу .
android:backgroundTint
безandroid:background
цього, цей другий TextView нічого не змінює. Однак, я намагаюсяandroid:backgroundTint
в кнопці, колір кнопки виглядає як той самий колір backgroundTint, який я встановив. Чи можете ви пояснити ці випадки?