android - रंगों में हेक्स पारदर्शिता
colors hex (7)
इसकी गणना करने के लिए पायथन का उपयोग करना, उदाहरण के लिए (पायथन 3 में लिखा गया), 50% पारदर्शिता:
hex(round(256*0.50))
:)
इस प्रश्न का उत्तर यहां दिया गया है:
- एंड्रॉइड (छह अक्षर) 6 उत्तरों पर रंगों को समझना
मैं अपने ऐप विजेट के लिए एक 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%) क्रैश।
मुझे उच्च संख्याओं का उपयोग करने में सक्षम बनाने के लिए मैं क्या कर सकता हूं?
इसे Google खोज पर आज़माएं (या यहां क्लिक करें )
255 * .2 to hex
परिणामस्वरूप यह 0x33
उत्पन्न करेगा।
हालांकि, Google मूल्यों को गोल नहीं करता है ताकि आप केवल 1 अंकों के गुणक का उपयोग कर सकें। यदि आप कहते हैं कि .85 का उपयोग करना चाहते हैं, तो आपको पहले 255 * .85 का गोलाकार मूल्य प्राप्त करना होगा, फिर Google खोज में (rounded-value here) to hex
टाइप (rounded-value here) to hex
टाइप करें।
मैं हमेशा 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
मैंने एंड्रॉइड ऐप के लिए यह छोटा हेल्पर विधि बनाया है, इसका उपयोग हो सकता है:
/**
* @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;
}
वह चार्ट पर्सेंट नहीं दिखा रहा है। "# 9 0" "90%" नहीं है। वह चार्ट हेक्साडेसिमल को दशमलव रूपांतरण में दिखाता है। हेक्स संख्या 9 0 (आमतौर पर 0x 9 0 के रूप में दर्शाया गया) दशमलव संख्या 144 के बराबर है।
हेक्साडेसिमल संख्या बेस -16 हैं, इसलिए प्रत्येक अंक 0 और एफ के बीच एक मान है। दो बाइट हेक्स मान (जैसे रंग की पारदर्शिता) के लिए अधिकतम मान 0xFF है, या दशमलव में 255 है। इस प्रकार 100% 0xFF है।
समस्या को क्रॉस गुणा द्वारा सामान्य रूप से हल किया जा सकता है
गणना कैसे करें?
हेक्स मूल्य प्रतिशत के लिए
प्रतिशत = (दशमलव में मान) / 255 * 100
बी 4 की% पारदर्शिता क्या है? हेक्स में बी 4 180 है ।
तो 180/255 * 100 = 70,5%
हेक्स मानों के प्रतिशत
दशमलव = प्रतिशत / 100 * 255
80% की हेक्स क्या है?
80/100 * 255 = 204 । 204 का हेक्स मान सीसी है
मैं टेबल को सौंपने के बजाय समाधान कैसे ढूंढना सिखाता हूं
एक आदमी को एक मछली दो और आप उसे एक दिन के लिए खिलाओ; एक आदमी को मछली को सिखाओ और आप उसे जीवन भर के लिए खिलाओ
यह बहुत देर हो चुकी जवाब हो सकता है .. लेकिन यह चार्ट इसे मारता है।
सभी प्रतिशत मान हेक्साडेसिमल मानों के लिए मैप किए जाते हैं।