एंड्रॉइड लेआउट xml में बैकग्राउंड, बैकग्राउंड, बैकग्राउंड टिंटमोड विशेषताओं के बीच अंतर क्या है?


112

एंड्रॉइड लेआउट xml I के साथ काम करते समय मैं backgroundTintविशेषता में आया था । मुझे समझ नहीं आ रहा है कि क्या है।

इसके अलावा क्या है backgroundTintMode??

जवाबों:


90

मैंने विभिन्न संयोजनों का परीक्षण किया 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>

आपके दूसरे TextView उदाहरण में, मुझे आश्चर्य है कि केवल android:backgroundTintबिना उपयोग के android:background, यह दूसरा TextView कुछ भी नहीं बदलता है। हालांकि, मैं android:backgroundTintबटन में कोशिश करता हूं, बटन का रंग पृष्ठभूमि के उसी रंग जैसा दिखता है जो मैंने सेट किया था। क्या आप इन मामलों की व्याख्या कर सकते हैं?
विन्ह गुयेन

@VinhNguyen, पर दिखाई देने के android:backgroundलिए संपत्ति निर्धारित की जानी चाहिए । के मामले में , मैं अनुमान लगा रहा हूं कि यह पहले से ही फ्रेमवर्क द्वारा निर्धारित किसी प्रकार की पृष्ठभूमि / रंग है। android:backgroundTintTextViewButton
योगेश उमेश वैश्य

13

backgroundTintविशेषता आप पृष्ठभूमि के लिए एक रंग (छाया) जोड़ने के लिए मदद मिलेगी। आप के रूप में उसी के लिए एक रंग मूल्य प्रदान कर सकते हैं -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".

backgroundTintModeदूसरी ओर की मदद से आप पृष्ठभूमि रंग लागू करने के लिए। इसमें निरंतर मान होना चाहिए जैसे src_over, src_in, src_atop,आदि।

इसे उपयोग किए जाने वाले स्थिर मानों का स्पष्ट विचार प्राप्त करने के लिए देखें । backgroundTintविशेषता के लिए खोज और विभिन्न विशेषताओं के साथ विवरण उपलब्ध होगा।


लिंक टूट गया है।
मल्लाउद्दीन

1
नहीं यह नहीं। क्या आप फिर से जांच कर सकते हैं?
समिधि

7

मैं अंतर पर ज्यादा जोर नहीं दूंगा क्योंकि यह पहले से ही कवर है, लेकिन नीचे नोटिस करें:

  • android:backgroundTint android:backgroundTintMode केवल एपीआई 21 पर उपलब्ध हैं
  • यदि आपके पास एक विजेट है जिसमें png / वेक्टर ड्रा करने योग्य पृष्ठभूमि सेट है android: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बजाय


4

BackgroundTint कलर फिल्टर का काम करता है।

टिंट के रूप में FEFBDE

37AEE4 पृष्ठभूमि के रूप में

टिप्पणी टिंट / पृष्ठभूमि द्वारा अंतर देखने की कोशिश करें और दोनों सेट होने पर आउटपुट की जांच करें।


4

एंड्रॉयड: backgroundTintMode

बैकिंग टिंट को लागू करने के लिए ब्लेंडिंग मोड का उपयोग किया जाता है।

एंड्रॉयड: backgroundTint

पृष्ठभूमि पर लागू करने के लिए टिंट। के रूप में एक रंग मान हो, अवश्य #rgb, #argb, #rrggbb, या #aarrggbb

यह एक संसाधन (फ़ॉर्म में "@ [पैकेज:] प्रकार: नाम") या थीम विशेषता (फ़ॉर्म में "? [पैकेज:] [प्रकार:] नाम") का संदर्भ भी हो सकता है, जिसमें इस प्रकार का मान होता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.