Trong khi làm việc với xml layout android, tôi đã xem qua backgroundTintthuộc tính. Tôi không hiểu là để làm gì.
Ngoài ra là gì backgroundTintMode??
Trong khi làm việc với xml layout android, tôi đã xem qua backgroundTintthuộc tính. Tôi không hiểu là để làm gì.
Ngoài ra là gì backgroundTintMode??
Câu trả lời:
Tôi đã thử nghiệm các kết hợp khác nhau của android:background, android:backgroundTintvà android:backgroundTintMode.
android:backgroundTintáp dụng bộ lọc màu cho tài nguyên android:backgroundkhi được sử dụng cùng với android:backgroundTintMode.
Đây là kết quả:
Đây là mã nếu bạn muốn thử nghiệm thêm:
<?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:backgroundtính phải được đặt android:backgroundTintđể hiển thị trên TextView. Trong trường hợp của Button, tôi đoán rằng nó đã có một số loại nền / màu được thiết lập bởi khuôn khổ.
Các backgroundTintthuộc tính này sẽ giúp bạn thêm một màu (bóng râm) để nền. Bạn có thể cung cấp một giá trị màu cho cùng một giá trị dưới dạng -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Mặt backgroundTintModekhác sẽ giúp bạn áp dụng màu nền. Nó phải có các giá trị không đổi như src_over, src_in, src_atop,v.v.
Tham khảo phần này để biết rõ về các giá trị hằng số có thể được sử dụng. Tìm kiếm backgroundTintthuộc tính và mô tả cùng với các thuộc tính khác nhau sẽ có sẵn.
Tôi sẽ không nhấn mạnh nhiều về sự khác biệt vì nó đã được đề cập, nhưng hãy lưu ý những điều dưới đây:
android:backgroundTint android:backgroundTintMode chỉ có ở API 21android:backgroundvà bạn muốn thay đổi màu mặc định của nó, thì bạn có thể sử dụng android:backgroundTintđể thêm bóng râm cho nó.thí dụ
<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" />
Một vi dụ khac
Nếu bạn cố gắng để thay đổi màu sắc giọng của FloatingActionButtonsử dụng android:backgroundbạn sẽ không nhận thấy một sự thay đổi, đó là bởi vì nó đã được sử dụng app:srcCompat, vì vậy để làm được điều mà bạn có thể sử dụng android:backgroundTintthay vì
Chế độ hòa trộn được sử dụng để áp dụng màu nền.
Tô màu để áp dụng cho nền. Phải là một giá trị màu, theo hình thức
#rgb,#argb,#rrggbb, hoặc#aarrggbb.Đây cũng có thể là tham chiếu đến tài nguyên (ở dạng "@ [package:] type: name") hoặc thuộc tính chủ đề (ở dạng "? [Package:] [type:] name") chứa giá trị thuộc loại này .
android:backgroundTintmà không cóandroid:background, TextView thứ hai này không thay đổi bất cứ điều gì. Tuy nhiên, tôi thửandroid:backgroundTinttrong Button, màu của nút trông giống với màu của backgroundTint mà tôi đã đặt. Bạn có thể giải thích những trường hợp này?