developer tip

Android 레이아웃 XML에서 background, backgroundTint, backgroundTintMode 속성의 차이점은 무엇입니까?

copycodes 2020. 8. 18. 07:51
반응형

Android 레이아웃 XML에서 background, backgroundTint, backgroundTintMode 속성의 차이점은 무엇입니까?


안드로이드 레이아웃 xml로 작업하는 동안 backgroundTintattribute를 발견했습니다. 나는 그것이 무엇인지 이해하지 못한다.

또한 무엇 backgroundTintMode입니까 ??


android:background, android:backgroundTint의 다양한 조합을 테스트했습니다 android:backgroundTintMode.

android:backgroundTintandroid: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>

backgroundTint속성은 배경에 색조 (음영)를 추가하는 데 도움이됩니다. 동일한 색상 값을 다음 형식으로 제공 할 수 있습니다."#rgb", "#argb", "#rrggbb", or "#aarrggbb".

반면 backgroundTintMode에 배경 색조를 적용하는 데 도움이됩니다. src_over, src_in, src_atop,etc 와 같은 상수 값이 있어야합니다 .

Refer this to get a clear idea of the the constant values that can be used. Search for the backgroundTint attribute and the description along with various attributes will be available.


BackgroundTint works as color filter.

FEFBDE as tint

37AEE4 as background

Try seeing the difference by comment tint/background and check the output when both are set.


android:backgroundTintMode

Blending mode used to apply the background tint.

android:backgroundTint

Tint to apply to the background. Must be a color value, in the form of #rgb, #argb, #rrggbb, or #aarrggbb.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

참고 URL : https://stackoverflow.com/questions/32471009/what-is-the-difference-between-background-backgroundtint-backgroundtintmode-at

반응형