2011-12-30 17 views
13

एंड्रॉइड प्रोग्रामिंग मुझे पागल कर रही है। जीयूआई विकास के लिए एक्सएमएल या प्रोग्राम करने योग्य तरीके कोड के सही पुराने कुत्तों का नाश्ता कर रहे हैं - यहां कुछ सामान, कुछ सामान हैं।एंड्रॉइड सिस्टम कलर कॉन्स्टेंट

मेरे वर्तमान हताशा यह सब एक्सएमएल रखने की कोशिश कर रही है और मैं सही रंग कोड निर्दिष्ट किए बिना ही TextView एक Button की पृष्ठभूमि का रंग के रूप में एक ही रंग की पृष्ठभूमि का रंग सेट करना चाहते हैं। मैं सिस्टम सिस्टम निरंतर उपयोग करना चाहता हूं, java.awt.SystemColor.control जैसे कुछ, लेकिन एक्सएमएल में निर्दिष्ट है।

क्या सामानों का एक गुच्छा फिर से निर्धारित किए बिना ऐसा करने के लिए वैसे भी है? मैं एक समाधान की तलाश में हूं जैसे: android:background="{Insert constant here}"

उत्तर

17

आप res/values ​​colors.xml कहा जाता है में एक फ़ाइल होनी चाहिए, यह इस तरह दिखना चाहिए:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="white">#FFFFFF</color> 
    <color name="grey">#7A7A7A</color> 
    <color name="background">#0044AA</color> 
    <color name="bluelight">#449DEF</color> 
    <color name="bluedark">#2F6699</color> 
    <color name="greenlight">#70C656</color> 
    <color name="greendark">#53933F</color> 
    <color name="orangelight">#F3AE1B</color> 
    <color name="orangedark">#BB6008</color> 
    <color name="black">#000000</color> 
</resources> 

तो फिर तुम सिर्फ इस तरह एक्सएमएल में रंग कॉल कर सकते हैं:

android:background="@color/greenlight" 
+3

लेकिन मैं रंग निर्दिष्ट करने के लिए नहीं करना चाहती। मैं एक सिस्टम शैली निर्दिष्ट करना चाहता हूँ। – zam664

+1

यह आमतौर पर ऐसा करने का पसंदीदा तरीका है, क्योंकि कई सिस्टम परिभाषित रंग नहीं हैं, हालांकि आप एंड्रॉइड का उपयोग कर सकते हैं: पृष्ठभूमि = "@ एंड्रॉइड: रंग/सफेद"। आप यहां एक पूर्ण सूची पा सकते हैं: http://developer.android.com/reference/android/R.color.html –

+0

मेरे पास पूर्व के लिए रंग निरंतर है: 1717044 9 जो मुझे हेक्सा दशमलव कोड में कनवर्ट करने की आवश्यकता है। क्या यह संभव है? अग्रिम धन्यवाद @MattHarris –

20

आप "@ रंग/सफेद" जैसी चीजों का उपयोग कर सकते हैं, या एंड्रॉइड सिस्टम स्थिरांक के लिए, "@android: color/holo_red_light"। वैकल्पिक रूप से आप अधिक नियंत्रण चाहते हैं, तो कभी एक आम पृष्ठभूमि एक drawable में परिभाषित करने और पृष्ठभूमि करने के लिए "@ drawable/mydrawable"

एंड्रॉयड के लिए उपलब्ध संसाधनों की सूची सेट कर सकते हैं: (background_dark) की तरह यहां का रंग: http://developer.android.com/reference/android/R.color.html

+1

यह समस्या है कि मैं एंड्रॉइड के साथ हूं। मैं सबकुछ खुद को फिर से परिभाषित नहीं करना चाहता हूं। मैं सिस्टम पर मानकों का उपयोग करना चाहता हूं। मुझे परवाह नहीं है कि उन मानकों क्या हैं, मैं सिर्फ एक समान उपयोगकर्ता दिखना चाहता हूं और महसूस करता हूं। – zam664

+0

यही कारण है कि आपको एंड्रॉइड का उपयोग करना चाहिए: रंग/... ऐसे कई मौजूदा प्रीसेट हैं जो रंग विशिष्ट नहीं हैं और निर्माता के आधार पर बदल जाएंगे। लिंक –

+1

के साथ अपडेट किया गया उत्तर बस एक सिर ऊपर, आपका उदाहरण गलत है, कोई "@android: color/red" –

1

इस तरह इस्तेमाल किया: android:background="#FF00FF"

2

जांच यह पेज: http://android-er.blogspot.com/2010/03/using-color-in-android.html

आप उपयोग कर सकते हैं: "@Android: रंग/सफेद" अपने xml में। मुझे कल्पना है कि कुछ अन्य आम रंग समर्थित हैं, लेकिन मुझे यकीन नहीं है कि कौन से हैं।

पसंदीदा समाधान आम तौर पर अपने स्वयं के रंग.एक्सएमएल संसाधन फ़ाइल बनाने और उन लोगों को संदर्भित करने के लिए होता है जिन्हें आपने वहां रखा था।

0

आप एक स्थिरांक 'एक्सएमएल बनाने के लिए xml फ़ाइल का उपयोग कर की जरूरत नहीं है,

यह आपकी मदद कर सकते हैं: Java constants file

+0

मैं इसे XML में जावा नहीं करना चाहता हूं। मैं जावा प्रोग्रामिंग के माध्यम से रंग प्राप्त कर सकता हूं लेकिन जीयूआई डिज़ाइन के लिए एक्सएमएल का उपयोग करना है और यह सब एक ही स्थान पर है। मैं एक्सएमएल में आधे जीयूआई और जावा में आधा नहीं चाहता। – zam664

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