2010-11-30 10 views
18

वर्तमान में मैं एक PNG छवि मेरी Android एप्लिकेशन में बहुत तरह ड्राइंग हूँ:स्थापना एंड्रॉयड छवियों

ImageView image = new ImageView(context); 
image.setImageDrawable(context.getResources().getDrawable(R.drawable.testimage)) 

अगर मैं एक डेटाबेस में छवि नाम की एक सूची है, वहाँ स्थापित करने के लिए एक रास्ता है छवि नाम का उपयोग कर ऊपर खींचने योग्य? मेरे पास पहले से ही डेटाबेस के माध्यम से जाने के लिए कोड है, मैं बस यहां से प्राप्त मूल्य के आधार पर छवि खींचने के लिए देख रहा हूं।

उदाहरण के लिए

, डीबी के लिए एक रिकॉर्ड:

ID: Name: ImageName: 
-  Test  testimage 

तो जब मैं इस रिकॉर्ड पढ़ रहा हूँ, मैं "testimage" के मूल्य के साथ एक स्ट्रिंग है और मैं तो छवि स्थापित करने के लिए चाहते हैं R.drawable.testimage पर आकर्षित करने योग्य।

एक तरह से मैं कर रहा यह कुछ इस तरह होगा की सोच रहा था:

int image = R.drawable.blank; // blank image 

// testimage.png is the image name from the database 
if(imageName.toString().equals("testimage.png")) 
    image = R.drawable.testimage; 
else if(imageName.toString().equals("another.png")) 
    image = R.drawable.another; 
else if(imageName.toString().equals("etc.png")) 
    image = R.drawable.etc; 

हालांकि यह बहुत ही कुशल नहीं है!

धन्यवाद

उत्तर

27

वहाँ क्या कर रही है कि, आप Resources.getIdentifier का उपयोग कर स्ट्रिंग() http://developer.android.com/reference/android/content/res/Resources.html

कुछ तरह से संसाधन आईडी पुनर्प्राप्त कर सकते हैं के लिए एक विधि है:

int resourceId = Activity.getResources().getIdentifier("testimage", "drawable", "your.package.name"); 
+0

धन्यवाद! मुझे जिस चीज की जरूरत थी! –

21

मैं उपयोग कर रहा हूँ:

int resId = getResources().getIdentifier("testimage", "drawable", getPackageName()); 
image.setImageResource(resId); 

"साक्ष्य" - उदाहरण के लिए मेल खाता है estimage.jpg, यानी न ".jpg"

"drawable" में शामिल हैं - में की तरह संसाधन प्रकार, है: @ drawable/testimage

चेक Resources.getIdentifier(...)

+0

int resId = getResources()। GetIdentifier ("testimage", "drawable", mainActivity.getPackageName()); बिटमैप छवि = बिटमैपफैक्टरी.decodeResource (getResources(), resId); – dinesh707

+0

बू हाँ! यह सही था। – LargeGlasses

0

रखो आप संपत्ति/फ़ोल्डर में छवियों और खुला

image.setImageURI("file:///android_asset/" + nameFromDB); 
-2

स्ट्रिंग पथ = "sdcard/camera_app/name.jpg"; img.setImageDrawable (Drawable.createFromPath (पथ));

+0

किसी भी स्पष्टीकरण के बिना, यह सहायक नहीं है। –

+0

आप विभिन्न छवियों उदाहरण के लिए पथ का उपयोग कर सकते हैं उदाहरण स्ट्रिंग पथ = "sdcard/camera_app/image1.jpg"; या स्ट्रिंग पथ = "sdcard/camera_app/image2.jpg" यदि आप केवल एक छवि खींचने के लिए कंडशन में उपयोग कर सकते हैं। – Mudasar

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