2012-09-12 17 views
9

साथ drawable यह संभव तरहएंड्रॉयड मापदंडों

drawable/myshape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <solid android:color="{0}" /> 
</shape> 

कुछ है करने के लिए और उसके बाद जावा वर्ग से मापदंडों के लिए इस drawable गुजर मानों को लेकर है। जैसे

Drawable myshape = ???.getDrawableWithParameters(R.drawable.myshape, 0x00ff00); 
+0

http://stackoverflow.com/questions/8396779/android-xml-Drawable- के डुप्लिकेट को देखने के लिए क्लासकास्ट अपवादों को देखने की आवश्यकता थी। पैरामीटर – Mene

उत्तर

0

कुछ आप एक shape जिस तरह से आप उदाहरण में दिखाया गया है बनाते हैं, तो यह एक GradientDrawable के रूप में पहुंचा जा सकेगा।

GradientDrawable d = (GradientDrawable) getResources().getDrawable(R.drawable.yourid); 

आप प्रलेखन आप सभी कार्यों को देख सकते हैं (ऊपर लिंक) पर एक नज़र डालें, तो आप एक GradientDrawable वस्तु से पहुँच सकते हैं। आप इस ऑब्जेक्ट का उपयोग करके प्रोग्रामेटिक रूप से बाद में पृष्ठभूमि और सीमा रंग और चौड़ाई भी सेट कर सकते हैं।

मुझे 100% यकीन नहीं है कि हर बार जब आप एक्सएमएल में एक आकार बनाते हैं, तो आपको GradientDrawable मिल जाएगा। मुझे कुछ आकारों को स्वयं आकार में संशोधित करने की आवश्यकता थी, और इसे अन्य प्रकार के Drawable एस

+1

यह आकार के बारे में नहीं है। यह एक परत सूची हो सकती है। पैरामीटर वह है जो मैं पूछता हूं। यदि कोई तरीका है तो हम ड्राइंग में पैरामीटर पास कर सकते हैं जैसे हम स्ट्रिंग्स – pbaris

+0

में करते हैं क्या आप रंगों और आकारों जैसे पैरामीटर को केवल अपनी आईडी और आपके इच्छित पैरामीटर का उपयोग करके पास करना चाहते हैं? नहीं, मुझे ऐसा नहीं लगता है। यह ओओपी सिद्धांतों का उल्लंघन करेगा, कि प्रत्येक जावा डेवलपर को (मेरी राय में) पालन करना चाहिए, और पूरी तरह से अनावश्यक होगा, क्योंकि इन सभी ड्रायबल उप-वर्गों में उन चीजों को संभालने के लिए वास्तव में एक अनुकूल इंटरफेस है। –

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