Працюючи з андроїд макетом 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, який я встановив. Чи можете ви пояснити ці випадки?