2011-05-26 16 views
7

में रंग संसाधन का मूल्य कैसे प्राप्त कर सकता हूं मुझे रंग के स्ट्रिंग मान प्राप्त करने की आवश्यकता है। दूसरे शब्दों में मैं स्ट्रिंग प्रारूप में <color name="color">#ffffffff</color> जैसे रंग संसाधन से #ffffffff खींचना चाहता हूं। ऐसा करने का कोई रास्ता नहीं है?मैं अपनी गतिविधि

उत्तर

18

आप यह मानते हुए है:

<color name="green">#0000ff00</color> 

और यहाँ है कोड:

int greenColor = getResources().getColor(R.color.green); 
String strGreenColor = "#"+Integer.toHexString(greenColor); 
+0

यह एक अच्छा विचार नहीं है, क्योंकि Integer.toHexString अग्रणी शून्य को पुनर्स्थापित नहीं करेगा। यदि आप अल्फा का उपयोग नहीं कर रहे हैं, तो यह काम करेगा, क्योंकि अल्फा एफएफ पर सेट है और कोई अग्रणी शून्य नहीं है, लेकिन उदाहरण में, स्ट्रग्रीन रंग "# एफएफ 00" होगा, न कि "# 0000ff00" इरादे से, –

3

आप XML के मूल स्रोत टेक्स्ट को खींचने में सक्षम नहीं होंगे। इसे बिल्ड समय पर बाइनरी मान में परिवर्तित कर दिया जाता है। (तो, उदाहरण के लिए, #fff और #ffffffff के बीच का अंतर मिटा दिया जाता है।)

आप निश्चित रूप से, एक हेक्स स्ट्रिंग के लिए रंग मूल्य में बदल सकते हैं, Integer.toHexString(int) का उपयोग कर।

3

तुम सिर्फ हेक्स मूल्य की जरूरत है (अल्फा) के बिना हैं:

int intColor = getResources().getColor(R.color.your_color); 
String hexColor = String.format("#%06X", (0xFFFFFF & intColor)); 
संबंधित मुद्दे