2012-02-28 8 views
18

मेरे पास मेरी प्रोजेक्ट में कुछ छवियां हैं I छवि का नाम स्ट्रिंग में संग्रहीत है और मैं इमेज रिसोर्स (R.drawable। ".....") सेट करना चाहता हूं; छवि नाम की स्ट्रिंग के साथ लेकिन समस्या यह है कि यह काम नहीं कर रहा है।R.drawable को कैसे बदलें। "SomeString"

मैं यह कैसे कर सकता हूं?

+0

छवियां कहां मौजूद हैं? – Deva

+0

मेरी परियोजना के ड्रायबल में। –

+0

एंड्रॉइड में यह एक तरह से काम नहीं करता है, आपको चित्रों को आकर्षित करने और R.drawable.image – Newts

उत्तर

42

यह सही वाक्यविन्यास नहीं है, और आपको छवि संसाधन बदलने से पहले संकलक समय त्रुटि मिलनी चाहिए, आपको यह पता होना चाहिए कि सभी संसाधनों ने आईडी प्रदान की है, इन आईडी को आर.जेवा फ़ाइल में संग्रहीत किया जाता है। आईडी पूर्णांक प्रारूप में जमा हो जाती है, और अपने आवेदन में आप इन आईडी के आधार पर इन सभी संसाधनों को लाने के कर सकते हैं नाम से नहीं है, तो आप, पहली बार में संसाधन की आईडी लाने के लिए की जरूरत द्वारा: इस Resid का उपयोग

String mDrawableName = "myimg"; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

और उसके बाद ।

+0

ग्रेट, धन्यवाद। –

10

उपयोग

getResources().getIdentifier("NAME_OF_IMAGE", "drawable", context.getPackageName()) 
+0

ग्रेट द्वारा एक्सेस करना है, धन्यवाद। –

2

इस thread देखें। यह आपकी मदद करनी चाहिए। असल में आपको पहचानकर्ता प्राप्त करने की आवश्यकता है और फिर setImageResource का उपयोग करके लोड करना होगा।

+0

अज्ञात डाउनवॉटर, मैंने अपने जवाब के साथ क्या बुरा किया? –

+0

ग्रेट, धन्यवाद। –

+0

मैंने आपको पहले से ही एक सकारात्मक वोट दिया है। –

1

सार्वजनिक int getIdentifier (स्ट्रिंग नाम, स्ट्रिंग defType, स्ट्रिंग defPackage);

नाम - छवि
defType के नाम - यह आपके मामले के लिए drawable हो जाएगा
defPackage - अपने ऐप्लिकेशन के डिफ़ॉल्ट पैकेज (मुझे लगता है कि आप इस के लिए गतिविधि पर getPackage() का उपयोग कर सकते हैं)

0

कोशिश इस

String uri = "NAME"; 

    // int imageResource = R.drawable.icon; 
    int imageResource = getResources().getIdentifier(uri, null, getPackageName()); 

    ImageView imageView = (ImageView) findViewById(R.id.myImageView); 
    Drawable image = getResources().getDrawable(imageResource); 
    imageView.setImageDrawable(image); 
0

मैं इसे 'कच्चे' फ़ोल्डर में 'drawable' से छवि को ले जाकर काम करने और नीचे के रूप में स्ट्रिंग मान का उपयोग मिल गया। यदि आपके पास 'res' निर्देशिका के अंतर्गत 'कच्चे' फ़ोल्डर नहीं है, तो res-> new-> एंड्रॉइड संसाधन निर्देशिका पर राइट क्लिक करें और resourcetype के ड्रॉपडाउन के तहत, 'कच्चे' का चयन करें।

String avatar = ("android.resource://" + "yourPackageName/" + String.valueOf(R.raw.robot_blue)); 
संबंधित मुद्दे