Android (सेटिंग) अल्फा (छवि) के लिए अल्फा देखें


128

क्या वास्तव में कोई XML विशेषता प्रतिरूप नहीं है setAlpha(int)?

यदि नहीं, तो क्या विकल्प हैं?

जवाबों:


195

नहीं, वहाँ नहीं है, देखें कि ImageView.setAlpha (int) दस्तावेज़ में "संबंधित XML विशेषताएँ" अनुभाग कैसे गायब है । इसका विकल्प View.setAlpha (फ्लोट) का उपयोग करना है जिसका XML समकक्ष है । यह 0 से 255 के बजाय 0.0 से 1.0 की सीमा लेता है। इसे जैसे चाहें उपयोग करेंandroid:alpha

<ImageView android:alpha="0.4">

हालांकि, एपीआई स्तर 11 के बाद से ही उपलब्ध में बाद वाला।


7
यहां तक कि अगर मैं सिर्फ अपने आप को यहाँ दोहरा रहा हूँ: ImageView.setAlpha(int)ले जा रहा है एक int, जबकि android:alphaएक नाव ले जा रहा है, इसलिए सख्ती से उत्तरार्द्ध भाषी इस पूर्व करने के लिए सटीक एक्सएमएल समकक्ष नहीं है, लेकिन यह करने के लिए समकक्ष है View.setAlpha(float)। और जैसा कि पहले ही कई बार यहां बताया गया है, android:alpha/ View.setAlpha(float)केवल एपीआई स्तर 11 के रूप में उपलब्ध हैं।
sschuberth

अंतर यह है कि स्वीकार्य सीमा फ्लोट एक के लिए 0-1 और अंतर एक के लिए 0-255 है।
ataulm

232

यह अन्य प्रतिक्रिया की तुलना में आसान है। एक xml मान है alphaजो दोहरा मान लेता है।

android:alpha="0.0" अदृश्य है

android:alpha="0.5" के माध्यम से देखना

android:alpha="1.0" पूरा दिख रहा है

यह वैसे काम करता है।


15
नहीं है setAlpha(float)और android:alphaकेवल API 11 (एंड्रॉयड 3.0) के बाद से। पूर्व एपीआई 11 एक को छवि के लिए अल्फा सेट करने के लिए कोड का उपयोग करना चाहिए। जैसा कि sschuberth ने पहले ही ऊपर anser में कहा था।
साल्व

@ एंटोनियो क्यों? यह उत्तर मेरे शीर्ष पर कोई जानकारी नहीं जोड़ता है, और इसके विपरीत कम पूर्ण है।
sschuberth

@ अपने जवाब में पूरी तरह से सही है, लेकिन एक उदाहरण की कमी इस जवाब को आपकी तुलना में अधिक ध्यान दे सकती है। यद्यपि आपका उत्तर अधिक जानकारी प्रदान करता है, लेकिन यह उत्तर मुझे वास्तव में जिस चीज़ की आवश्यकता है, उसके करीब एक समाधान प्रदान करता है। कृपया, आपने जो व्याख्या की है, उसका उपयोग करने के लिए कुछ उदाहरण जोड़ें, जो पूरी तरह से मदद करेगा!
एंटोनियो

@ एटनियो डन। मैंने अपना जवाब अब सुपर-
डुपर

53

मैं XML के बारे में निश्चित नहीं हूं लेकिन आप इसे निम्न तरीके से कोड द्वारा कर सकते हैं।

ImageView myImageView = new ImageView(this);
myImageView.setAlpha(xxx);

पूर्व-एपीआई 11 में:

  • रेंज 0 से 255 (समावेशी) है, 0 पारदर्शी और 255 अपारदर्शी है।

एपीआई 11+ में:

  • सीमा 0f से 1f (समावेशी) है, 0f पारदर्शी है और 1f अपारदर्शी है।

2
हां मुझे पता है। (मुझे आशा है कि यह प्रश्न में निहित था।) एक्सएमएल का एक बिंदु इस कोड से कुछ निकालना है। यह मेरे लिए alphaकोई मतलब नहीं है कि विभिन्न आकारों, पदों को करते समय एक्सएमएल-विशेषता समकक्ष क्यों नहीं है।
SK9

मुझे आश्चर्य है: यह पदावनत क्यों है? क्या इसलिए कि अब उनके पास एक फ्लोट पैरामीटर है?
Android डेवलपर

हां, आप imageView.setAlpha (1.0f) का उपयोग कर सकते हैं, लेकिन इसके लिए एपीआई स्तर 11. की आवश्यकता है
टोनी Ceralva

12

शायद सादे रंग की पृष्ठभूमि के लिए एक उपयोगी विकल्प :

ImageView पर एक LinearLayout रखो और एक अस्पष्टता फ़िल्टर के रूप में LinearLayout का उपयोग करें । निम्नलिखित में एक काले रंग की पृष्ठभूमि के साथ एक छोटा सा उदाहरण:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF000000" >

<RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon_stop_big" />

    <LinearLayout
        android:id="@+id/opacityFilter"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#CC000000"
        android:orientation="vertical" >
    </LinearLayout>
</RelativeLayout>

वैरी पृष्ठभूमि: एंड्रॉयड की विशेषता LinearLayout के बीच # 00000000 (पूरी तरह से पारदर्शी) और # FF000000 (पूरी तरह से अपारदर्शी)।


1
विशेष रूप से फोन डिवाइस पर एक छवि समस्या के अल्फा को हल करने के लिए वास्तव में ऐसा करने का सबसे अच्छा नहीं है।
प्रकाश नाडर

यह बहुत अच्छा काम करता है जब आप सिर्फ पृष्ठभूमि को पारदर्शी बनाना चाहते हैं, लेकिन इसके चिल्ड को नहीं। मूल कंटेनर पर अल्फा का उपयोग करना, उसके सभी बच्चों को भी पारदर्शी बनाता है
noni

8

अब एक XML विकल्प है:

        <ImageView
        android:id="@+id/example"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/example"
        android:alpha="0.7" />

यह है: Android: अल्फ़ा = "0.7"

0 (पारदर्शी) से 1 (अपारदर्शी) के मान के साथ।


4

एंड्रॉइड का उपयोग करें: 50% की अस्पष्टता प्राप्त करने और ब्लैक से ग्रे तक एंड्रॉइड मटेरियल आइकन चालू करने के लिए अल्फा = 0.5।


4

setAlpha(int)एपीआई के रूप में पदावनत किया गया है 16:Android 4.1

कृपया setImageAlpha(int)इसके बजाय उपयोग करें


3

Android के प्राचीन संस्करण के लिए इस फ़ॉर्म का उपयोग करें।

ImageView myImageView;
myImageView = (ImageView) findViewById(R.id.img);

AlphaAnimation alpha = new AlphaAnimation(0.5F, 0.5F);
alpha.setDuration(0); 
alpha.setFillAfter(true); 
myImageView.startAnimation(alpha);

0

अल्फ़ा को निम्न हेक्स प्रारूप #ARGB या #AARRGGBB का उपयोग करके रंग के साथ सेट किया जा सकता है। Http://developer.android.com/guide/topics/resources/color-list-resource.html देखें


मैं एक XML विशेषता का उपयोग करके एक छवि के अल्फा को सेट करना चाहता हूं। क्या यह मदद करता है?
SK9

मैं एक पृष्ठभूमि छवि के साथ एक लेआउट पर लेआउट को धुंधला करने के लिए इसका उपयोग कर रहा हूं, निश्चित रूप से आप छवि में एक छवि के अल्फ़ा को सेट करेंगे?
ग्रांट

आपका क्या मतलब है "छवि में ही"? XML के भीतर? एक निरीक्षण यह हो सकता है, लेकिन कोई अल्फा एक्सएमएल विशेषता नहीं है।
SK9

मेरा मतलब है कि जब आप छवि बनाते हैं तो आप एक पारदर्शिता परत जोड़ेंगे और अपनी छवि की अस्पष्टता को 50 या जो भी मूल्य की आवश्यकता होगी, निर्धारित करेंगे।
अनुदान

मुझे बहुत आश्चर्य हुआ कि Android: टिंट का कोई प्रभाव नहीं है। यह एक अल्फा मूल्य के लिए अनुमति देता है ... लेकिन यह एक सफेद छवि पर प्रभाव नहीं है: - (((((
किसी ने कहीं न कहीं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.