android - रंगों में हेक्स पारदर्शिता




colors hex transparency (9)

मैंने एंड्रॉइड ऐप के लिए यह छोटा हेल्पर विधि बनाया है, इसका उपयोग हो सकता है:

 /**
 * @param originalColor color, without alpha
 * @param alpha         from 0.0 to 1.0
 * @return
 */
public static String addAlpha(String originalColor, double alpha) {
    long alphaFixed = Math.round(alpha * 255);
    String alphaHex = Long.toHexString(alphaFixed);
    if (alphaHex.length() == 1) {
        alphaHex = "0" + alphaHex;
    }
    originalColor = originalColor.replace("#", "#" + alphaHex);


    return originalColor;
}

इस प्रश्न का उत्तर यहां दिया गया है:

मैं अपने ऐप विजेट के लिए एक wigdget पारदर्शिता विकल्प को लागू करने पर काम कर रहा हूं हालांकि मुझे हेक्स रंग मान सही होने में कुछ परेशानी हो रही है। हेक्स रंग पारदर्शिता के लिए पूरी तरह से नया होने के नाते मैंने थोड़ा सा खोज किया हालांकि मुझे अपने प्रश्न का एक विशिष्ट उत्तर नहीं मिला।

मैं हेक्स रंग से पारदर्शिता सेट करना चाहता हूं तो चलो मेरा हेक्स रंग आईडी "# 33b5e5" कहें और मैं चाहता हूं कि यह 50% पारदर्शी हो। फिर मैं "# 8033b5e5" का उपयोग करूंगा क्योंकि 80 50% है।

मुझे यहां एक उपयोगी चार्ट मिला: http://www.dtp-aus.com/hexadeci.htm । इस डेटा के साथ मैं इसके साथ आने में कामयाब रहा:

0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144

अब जब मैं हेक्स में 100 से अधिक प्राप्त करता हूं तो समस्याएं दिखने लगती हैं। हेक्स रंग कोड केवल 8 प्रतीकों लंबा हो सकता है? उदाहरण के लिए # 11233b5e5 (80%) क्रैश।

मुझे उच्च संख्याओं का उपयोग करने में सक्षम बनाने के लिए मैं क्या कर सकता हूं?


मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन कुछ ऐसा करने पर मैं इसे पार कर गया।

एसएएसएस का उपयोग करके, आपके पास आरजीबीए को हेक्स एआरजीबी में परिवर्तित करने का एक बहुत ही शानदार तरीका है: ie-hex-str । मैंने इसे एक मिश्रण में इस्तेमाल किया है।

@mixin ie8-rgba ($r, $g, $b, $a){
    $rgba: rgba($r, $g, $b, $a);
    $ie8-rgba: ie-hex-str($rgba);
    .lt-ie9 &{
      background-color: transparent;
      filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}');
  }
}

.transparent{
    @include ie8-rgba(88,153,131,.8);
    background-color: rgba(88,153,131,.8);
}

आउटपुट:

.transparent {
  background-color: rgba(88, 153, 131, 0.8);
}
.lt-ie9 .transparent {
  background-color: transparent;
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983');
  zoom: 1;
}


हेक्स मानों के प्रतिशत की एक सही तालिका यहां दी गई है। 50% सफेद के लिए आप # 80FFFFFF का उपयोग करेंगे।

  • 100% - एफएफ
  • 95% - एफ 2
  • 90% - ई 6
  • 85% - डी 9
  • 80% - सीसी
  • 75% - बीएफ
  • 70% - बी 3
  • 65% - ए 6
  • 60% - 99
  • 55% - 8 सी
  • 50% - 80
  • 45% - 73
  • 40% - 66
  • 35% - 5 9
  • 30% - 4 डी
  • 25% - 40
  • 20% - 33
  • 15% - 26
  • 10% - 1 ए
  • 5% - 0 डी
  • 0% - 00

( source )


रंग हेक्साडेसिमल नोटेशन निम्न जैसा है: #AARRGGBB

  • ए: अल्फा
  • आर: लाल
  • जी: हरा
  • बी: नीला

आपको सबसे पहले देखना चाहिए कि hexadecimal कैसे काम करता है। आप ज्यादातर एफएफ में लिख सकते हैं।


इसकी गणना करने के लिए पायथन का उपयोग करना, उदाहरण के लिए (पायथन 3 में लिखा गया), 50% पारदर्शिता:

hex(round(256*0.50))

:)


मैं हमेशा int / हेक्स अल्फा मान की जांच करने के लिए यहां आ रहा रहता हूं। तो, मेरे जावा यूटिल क्लास में एक साधारण विधि बनाना समाप्त करें। यह विधि प्रतिशत को हेक्स मान में परिवर्तित करेगी और रंग कोड स्ट्रिंग मान में संलग्न होगी।

 public static String setColorAlpha(int percentage, String colorCode){
    double decValue = ((double)percentage / 100) * 255;
    String rawHexColor = colorCode.replace("#","");
    StringBuilder str = new StringBuilder(rawHexColor);

    if(Integer.toHexString((int)decValue).length() == 1)
        str.insert(0, "#0" + Integer.toHexString((int)decValue));
    else
        str.insert(0, "#" + Integer.toHexString((int)decValue));
    return str.toString();
}

तो, Utils.setColorAlpha(30, "#000000") आपको #4c000000


यह बहुत देर हो चुकी जवाब हो सकता है .. लेकिन यह चार्ट इसे मारता है।

सभी प्रतिशत मान हेक्साडेसिमल मानों के लिए मैप किए जाते हैं।

http://online.sfsu.edu/chrism/hexval.html


वह चार्ट पर्सेंट नहीं दिखा रहा है। "# 9 0" "90%" नहीं है। वह चार्ट हेक्साडेसिमल को दशमलव रूपांतरण में दिखाता है। हेक्स संख्या 9 0 (आमतौर पर 0x 9 0 के रूप में दर्शाया गया) दशमलव संख्या 144 के बराबर है।

हेक्साडेसिमल संख्या बेस -16 हैं, इसलिए प्रत्येक अंक 0 और एफ के बीच एक मान है। दो बाइट हेक्स मान (जैसे रंग की पारदर्शिता) के लिए अधिकतम मान 0xFF है, या दशमलव में 255 है। इस प्रकार 100% 0xFF है।


अल्फा मान के साथ एक रंग का उपयोग करें जैसे #33------ , और एक्सएमएल विशेषता android:background=" " का उपयोग करके इसे अपने संपादन टेक्स्ट की पृष्ठभूमि के रूप में सेट करें android:background=" "

  1. 0% (पारदर्शी) -> # 00 हेक्स में
  2. 20% -> # 33
  3. 50% -> # 80
  4. 75% -> # सी 0
  5. 100% (अपारदर्शी) -> # एफएफ

हेक्स 33 में 255 * 0.2 = 51 →







android colors hex transparency