2012-09-07 18 views
7

मैं अपने खुद के रंगों का उपयोग करके अपने FrameLayout के पृष्ठभूमि रंग को सेट करने का प्रयास कर रहा हूं।एंड्रॉइड: कस्टम रंगों का उपयोग कैसे करें?

मैंने .xml फ़ाइल बनाई है जिसमें मेरे स्वयं के रंग हैं। संदेश यह है:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="red">#FF0000</color> 
    <color name="orange">#FF7D00</color> 
    <color name="yellow">#FFFF00</color> 
    <color name="green">#00FF00</color> 
    <color name="blue">#00B4FF</color> 
    <color name="black">#000000</color> 
</resources> 

और यहाँ कोड जहां इम पृष्ठभूमि रंग सेट करने का प्रयास है, लेकिन जब मैं अनुप्रयोग चलाने, FrameLayout हमेशा ग्रे है, क्यों ?:

FrameLayout MyFrameLayout = new FrameLayout(this); 
LayoutParams MyFrameLayoutParam = new LayoutParams(LayoutParams.FILL_PARENT, 200); 
MyFrameLayout.setLayoutParams(MyFrameLayoutParam); 

MyFrameLayout.setBackgroundColor(R.color.red); 

Parent.addView(MyFrameLayout); 

उत्तर

9

आप की जरूरत है इसे स्थापित करने से पहले संसाधनों से रंग पुनर्प्राप्त करने के लिए। आप R.java आईडी को वास्तविक मान निर्दिष्ट नहीं कर रहे हैं।

Color red = getApplicationContext().getResources().getColor(R.color.red) 
MyFrameLayout.setBackgroundColor(red); 
+0

मुझे लगता है कि यह R.id.red – vincentp

+0

Yup के बजाय R.color.red है, अच्छा लगता है। – tsmith

0

आप setBackgroundResource (रंग)

यहाँ एक उदाहरण का उपयोग कर सकते हैं:

relativelayout.setBackgroundResource(R.color.green);

2

एक्सएमएल में अपने कस्टम रंग का उपयोग करने के लिए आपको कुछ ऐसा प्रयोग करेंगे:

android:color="@color/orange"

3

टी वह एक बटन पृष्ठभूमि हरा बनाता है, आप चाहते हैं कि रंग हेक्स पाएं।

yourButton.setBackgroundColor (Color.parsecolor ("# 25b72f"));