2011-08-03 13 views
16

यह एक बेवकूफ सवाल हो सकता है लेकिन मुझे आश्चर्य है कि Paint कक्षा में setColor(Color c) विधि नहीं है।एंड्रॉइड: रंग से इंट रूपांतरण

public void setColor(Color color) { 
/* ... */ 
Paint p = new Paint(); 
p.setColor(color); // set color takes only int as a paramter :(
/* ... */ 
} 

इसलिए किसी भी आसान तरीका int को Color कन्वर्ट करने के लिए: मैं निम्नलिखित करना चाहते हैं?

+3

android.graphics.Color स्थिर विधि का संग्रह है। इसे शुरू नहीं किया जाना चाहिए। आपने यह कैसे किया? –

+0

आप सही हैं, धन्यवाद, कृपया इसे उत्तर के रूप में दोबारा पोस्ट करें :) – Caner

उत्तर

39

int सरल दो तरह से यहाँ में किसी भी color पार्स:

1) सिस्टम रंग

int redColorValue = Color.RED; 

2) किसी भी रंग हेक्स कोड एक स्ट्रिंग तर्क के रूप में प्राप्त करें

int greenColorValue = Color.parseColor("#00ff00") 

चाहिए उपरोक्त कोड में याद Color वर्ग android.graphics... किया जाना चाहिए!

1

R.color.black या कुछ रंग स्पष्ट रूप से पूर्णांक हैं। इसे एक आरजीबी मूल्य की जरूरत है। आप #FF123454 जो विभिन्न प्राथमिक रंग

2

सभी तरीकों और रंग में चर रहे हैं पर एक नज़र डालें का प्रतिनिधित्व करता है की तरह अपने खुद के दे सकते हैं स्थिर। आप कलर ऑब्जेक्ट को चालू नहीं कर सकते हैं।

Official Color Docs

रंग वर्ग बनाने और रंग ints परिवर्तित करने के लिए तरीकों को परिभाषित करता है।

रंगों को 4 बाइटों से बना पैक किए गए स्याही के रूप में दर्शाया जाता है: अल्फा, लाल, हरा, नीला।

मान अप्रचलित हैं, जिसका अर्थ है कि कोई पारदर्शिता अल्फा घटक में पूरी तरह से संग्रहीत होती है, न कि रंग घटकों में।

घटक निम्नानुसार संग्रहीत हैं (अल्फा < < 24) | (लाल < < 16) | (हरा < < 8) | नीला।

प्रत्येक घटक 0..255 के बीच 0 के बीच है जिसका अर्थ है उस घटक के लिए कोई योगदान नहीं, और 255 का अर्थ 100% योगदान है।

इस प्रकार अपारदर्शी काले 0xFF000000 (100% अपारदर्शी लेकिन लाल, हरे, या नीले रंग से कोई योगदान) होगा, और अपारदर्शी सफेद 0xFFFFFFFF होगा

0

पेंट डोस ने कलर फ़ंक्शन सेट किया है।

/** 
* Set the paint's color. Note that the color is an int containing alpha 
* as well as r,g,b. This 32bit value is not premultiplied, meaning that 
* its alpha can be any value, regardless of the values of r,g,b. 
* See the Color class for more details. 
* 
* @param color The new color (including alpha) to set in the paint. 
*/ 
public native void setColor(@ColorInt int color); 

एक Android डेवलपर के रूप में, मैं इस तरह के रंग रंग सेट ...

paint.setColor(getResources().getColor(R.color.xxx)); 

मैं की तरह color.xml कुछ पर रंग मान निर्धारित ...

<color name="xxx">#008fd2</color> 

तरह से अगर आप विशिष्ट रंग मूल्य की हेक्स आरजीबी मूल्य करना चाहते करके, तो आप इस तरह वेबसाइट की जाँच कर सकते हैं: http://www.rapidtables.com/web/color/RGB_Color.htm

मुझे आशा है कि इस मदद करता है! कोडिंग का आनंद लें!

संबंधित मुद्दे