Android पर पृष्ठभूमि को 20% पारदर्शी कैसे बनाएं




transparency android-textview (8)

मैं Textview की पृष्ठभूमि को लगभग 20% पारदर्शी (पूरी तरह पारदर्शी नहीं) कैसे बना सकता हूं, जहां पृष्ठभूमि में रंग (यानी सफेद) है?


अल्फा चैनल के लिए हेक्साडेसिमल मान की गणना करने के लिए @Aromero के उत्तर से प्रोग्रामेटिक समाधान यहां दिया गया है। :)

 public static void main(String[] args) throws Exception {
    final Scanner scanner = new Scanner(System.in);
    int transPerc;
    float fPerc;
    System.out.println("Enter the transparency percentage without % symbol:");
    while((transPerc=scanner.nextInt())>=0 && transPerc <=100){
        fPerc = (float) transPerc / 100;
        transPerc = Math.round(255 * fPerc);
        System.out.println("= " + Integer.toHexString(transPerc));
        System.out.print("another one please : ");
    }
    scanner.close();
}

अल्फा चैनल में रंग 80% बनाओ। उदाहरण के लिए, लाल उपयोग #CCFF0000 :

<TextView
   ...
   android:background="#CCFF0000" />

उदाहरण में, CC 255 * 0.8 = 204 लिए हेक्साडेसिमल संख्या है। ध्यान दें कि पहले दो हेक्साडेसिमल अंक अल्फा चैनल के लिए हैं। प्रारूप #AARRGGBB , जहां AA अल्फा चैनल है, RR लाल चैनल है, GG हरा चैनल है और BB नीला चैनल है।

मुझे लगता है कि 20% पारदर्शी मतलब 80% अपारदर्शी है। यदि आपका दूसरा तरीका है, CC बजाय 33 उपयोग जो 255 * 0.2 = 51 लिए हेक्साडेसिमल है।

अल्फा पारदर्शिता मूल्य के लिए उचित मान की गणना करने के लिए आप इस प्रक्रिया का पालन कर सकते हैं:

  1. पारदर्शिता प्रतिशत को देखते हुए, उदाहरण के लिए 20%, आप जानते हैं कि अपारदर्शी प्रतिशत मान 80% है (यह 100-20=80 )
  2. अल्फा चैनल की सीमा 8 बिट्स ( 2^8=256 ) है, जिसका अर्थ है कि सीमा 0 से 255 तक है।
  3. अल्फा रेंज में अपारदर्शी प्रतिशत प्रोजेक्ट करें, यानी, प्रतिशत द्वारा सीमा (255) गुणा करें। इस उदाहरण में 255 * 0.8 = 204 । यदि आवश्यक हो तो निकटतम पूर्णांक के लिए गोल करें।
  4. 3. में प्राप्त मान को कनवर्ट करें, जो आधार 10 में है, हेक्साडेसिमल (बेस 16) तक। आप इस या किसी कैलकुलेटर के लिए Google का उपयोग कर सकते हैं। Google का उपयोग करके, "204 हेक्सा" टाइप करें और यह आपको हेक्साडेसिमल मान देगा। इस मामले में यह 0xCC
  5. वांछित रंग में 4 में प्राप्त मूल्य तैयार करें। उदाहरण के लिए, लाल के लिए, जो CCFF0000 , आपके पास CCFF0000 होगा।

आप रंगों के लिए एंड्रॉइड प्रलेखन पर एक नज़र डाल सकते हैं।


आप कलर ओपेसिटी को रंग परिभाषा में पहले 2 अक्षरों को बदल सकते हैं:

# 99 000000

100% — FF
99% — FC
98% — FA
97% — F7
96% — F5
95% — F2
94% — F0
93% — ED
92% — EB
91% — E8

90% — E6
89% — E3
88% — E0
87% — DE
86% — DB
85% — D9
84% — D6
83% — D4
82% — D1
81% — CF

80% — CC
79% — C9
78% — C7
77% — C4
76% — C2
75% — BF
74% — BD
73% — BA
72% — B8
71% — B5

70% — B3
69% — B0
68% — AD
67% — AB
66% — A8
65% — A6
64% — A3
63% — A1
62% — 9E
61% — 9C

60% — 99
59% — 96
58% — 94
57% — 91
56% — 8F
55% — 8C
54% — 8A
53% — 87
52% — 85
51% — 82

50% — 80
49% — 7D
48% — 7A
47% — 78
46% — 75
45% — 73
44% — 70
43% — 6E
42% — 6B
41% — 69

40% — 66
39% — 63
38% — 61
37% — 5E
36% — 5C
35% — 59
34% — 57
33% — 54
32% — 52
31% — 4F

30% — 4D
29% — 4A
28% — 47
27% — 45
26% — 42
25% — 40
24% — 3D
23% — 3B
22% — 38
21% — 36

20% — 33
19% — 30
18% — 2E
17% — 2B
16% — 29
15% — 26
14% — 24
13% — 21
12% — 1F
11% — 1C

10% — 1A
9% — 17
8% — 14
7% — 12
6% — 0F
5% — 0D
4% — 0A
3% — 08
2% — 05
1% — 03
0% — 00 

आप कुछ ऐसा करने का प्रयास कर सकते हैं:

textView.getBackground().setAlpha(51);

यहां आप अस्पष्टता को 0 (पूरी तरह से पारदर्शी) के बीच 255 (पूरी तरह से अपारदर्शी) सेट कर सकते हैं। 51 वही 20% है जो आप चाहते हैं।


एक एक्सएमएल वैल्यू alpha जो डबल वैल्यू लेता है।

चूंकि API 11+ रेंज 0 0f से 1 1f (समावेशी) है, 0 0f पारदर्शी है और 1 1f अपारदर्शी है:

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

  • android:alpha="0.5" देखें-थ्रू

  • android:alpha="1.0" पूर्ण दृश्यमान

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


काले रंग के लिए नीचे दिए गए कोड का प्रयोग करें:

<color name="black">#000000</color>

अब अगर मैं अस्पष्टता का उपयोग करना चाहता हूं तो आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

 <color name="black">#99000000</color> 

और अस्पष्टता कोड के लिए नीचे:

हेक्स अस्पष्टता मान

100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00

यदि आप हमेशा पारदर्शिता के लिए कौन सा कोड भूलना चाहते हैं तो आपको नीचे लिंक देखना होगा और पारदर्शी कोड से संबंधित कुछ भी याद रखने की कोई चिंता नहीं होगी: -

https://github.com/duggu-hcd/TransparentColorCode

textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor10(R.color.border_color)));

एंड्रॉइड स्टूडियो में रंग और अल्फा / अस्पष्टता मूल्य समायोजित करने के लिए एक अंतर्निहित टूल है :


मैंने तीन दृश्य लिया है। पहले दृश्य में मैंने पूर्ण (कोई अल्फा) रंग सेट नहीं किया, दूसरे दृश्य पर मैंने आधा (0.5 अल्फा) रंग सेट किया, और तीसरे दृश्य पर मैंने हल्का रंग (0.2 अल्फा) सेट किया।

आप नीचे दिए गए कोड का उपयोग कर किसी भी रंग को सेट कर सकते हैं और अल्फा के साथ रंग प्राप्त कर सकते हैं:

फ़ाइल गतिविधि_माइन.एक्सएमएल

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:gravity = "center"
    android:orientation = "vertical"
    tools:context = "com.example.temp.MainActivity" >

    <View
        android:id = "@+id/fullColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip" />

    <View
        android:id = "@+id/halfalphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

    <View
        android:id = "@+id/alphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

</LinearLayout>

फ़ाइल MainActivity.java

public class MainActivity extends Activity {

    private View fullColorView, halfalphaColorView, alphaColorView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fullColorView = (View)findViewById(R.id.fullColorView);
        halfalphaColorView = (View)findViewById(R.id.halfalphaColorView);
        alphaColorView = (View)findViewById(R.id.alphaColorView);

        fullColorView.setBackgroundColor(Color.BLUE);
        halfalphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.5f));
        alphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.2f));
    }


    public static int getColorWithAlpha(int color, float ratio) {
        int newColor = 0;
        int alpha = Math.round(Color.alpha(color) * ratio);
        int r = Color.red(color);
        int g = Color.green(color);
        int b = Color.blue(color);
        newColor = Color.argb(alpha, r, g, b);
        return newColor;
    }
}

किया हुआ





android-textview