2010-08-18 22 views
9

मेरे पास मेरे दृश्य पर एक छवि दृश्य है कि मैं उपयोगकर्ता इनपुट के आधार पर गतिशील रूप से स्रोत सेट करना चाहता हूं।छवि दृश्य का सेट स्रोत गतिशील रूप से एंड्रॉइड

मान लें कि मेरे पास मेरे खींचने योग्य फ़ोल्डर में 4 छवियां हैं: aaa.png, bbb.png, ccc.png, और ddd.png।

अपने आवेदन भार मैं करने के लिए छवि सेट करते हैं: aaa.png

myImageView.setImageResource(R.drawable.aaa); 

अब मैं एक EditText जहां एक उपयोगकर्ता bbb में टाइप कर सकते हैं है और मैं छवि स्रोत बदलने के लिए bbb.png होना चाहता हूँ , या उपयोगकर्ता सीसीसी में प्रवेश करता है, ccc.png आदि में स्रोत बदलें

मैं setImageResource() में पैरामीटर को गतिशील रूप से कैसे सेट कर सकता हूं? मैंने ड्रॉबल ऑब्जेक्ट के साथ खेलने का प्रयास नहीं किया ...

उत्तर

2

आप खुले पाठ इनपुट की अनुमति देना चाहते हैं, तो आप या तो raw assets उपयोग करने के लिए स्ट्रिंग उन्हें नाम से लाने (उस पृष्ठ पर sidenote देखें) करना होगा, वरना जादुई Java reflection का उपयोग द्वारा आर वर्ग के एक क्षेत्र को पुनः प्राप्त करने नाम। वैकल्पिक रूप से, आप स्ट्रिंग्स के हैश मैप को R.drawable पूर्णांक मानों पर रख सकते हैं और इसे देख सकते हैं, लेकिन फिर आपको उस हैशैप को बनाए रखना होगा।

R.drawable ourRID = new R.drawable(); 
         Field photoNameField = ourRID.getClass().getField("aaa"); 
myImageView.setImageResource(photoNameField.getInt(ourRID)); 

आशा है कि यह मदद करता है:

+0

मुझे लगता है कि हैशपैप वह है जो मैं करूँगा। इसके बारे में प्रश्न, हालांकि, यदि संपत्तियां जोड़ दी गई हैं, तो मौजूदा संपत्तियों के लिए पूर्णांक मान बदलें (वृद्धि)? या वे वही रहेंगे? – Kyle

+0

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

0

यदि आप केवल अपने चित्रों में लोड की गई छवियों को प्रदर्शित करना चाहते हैं तो आप Spinner का उपयोग कर सकते हैं जहां आइटम के लिए आईडी संसाधन के रूप में सेट की गई है Drawable के लिए। यह आपके हिस्से पर और उपयोगकर्ता के लिए आसान होगा।

0

आप प्रतिबिंब उपयोग करना चाहते हैं तो नीचे दिए गए कोड पर एक नजर है।

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