2010-04-22 12 views
11

मैंएक पीएनजी फ़ाइल से ImageView कैसे लोड करें?

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 22); 

का उपयोग कर कैमरे के साथ एक तस्वीर लेने जब गतिविधि को पूरा करता है, मैं एक PNG फ़ाइल को बिटमैप चित्र बाहर लिखें।

java.io.FileOutputStream out = openFileOutput("myfile.png", Context.MODE_PRIVATE); 
    bmp.compress(Bitmap.CompressFormat.PNG, 90, out); 

यह ठीक हो जाता है, और मैं देख सकता हूं कि फ़ाइल मेरे ऐप निजी डेटा स्थान में बनाई गई है।

जब मैं बाद में छवि छवि का उपयोग कर उस छवि को प्रदर्शित करना चाहता हूं तो मुझे कठिनाई हो रही है।

क्या कोई ऐसा करने के लिए कोड सुझा सकता है?

यदि मैं पथ विभाजक के साथ फ़ाइल बनाने का प्रयास करता हूं, तो यह विफल हो जाता है। यदि मैं अलग से बिना किसी नाम से उरी बनाने की कोशिश करता हूं, तो यह विफल हो जाता है।

मैं का उपयोग कर फ़ाइल ठीक खोल सकते हैं:

 java.io.FileInputStream in = openFileInput("myfile.png"); 

लेकिन है कि मुझे नहीं देता उरी मैं साथ

iv.setImageURI(u) 

सारांश एक छवि निर्धारित करने की आवश्यकता: मैं तस्वीर निजी ऐप डेटा में एक पीएनजी फ़ाइल में। इसे ImageView में सेट करने के लिए कोड क्या है?

धन्यवाद।

उत्तर

33

BitmapFactory.decodeFile() और फिर setImageBitmap()ImageView पर आज़माएं।

+1

पर उत्तर दिया गया था धन्यवाद, हाँ, ऐसा हुआ। देखने के लिए एकमात्र चीज यह है कि आप bmp. फ़ाइल फ़ाइल को देकर फ़ाइल में इसे दबाएं। लेकिन उसी फ़ाइल को डीकोड करने के लिए, आपको संपूर्ण पथनाम बनाना और प्रदान करना होगा। एंड्रॉइड में इस तरह की कई विचारहीन असमानताएं हैं। स्ट्रिंग fname = c.getFilesDir()। GetAbsolutePath() + "/ myfile.png"; बिटमैप बीएम = बिटमैपफैक्टरी.decodeFile (fname); iv.setImageBitmap (बीएम); –

+1

ओओएम से बचने के लिए और "बनावट में अपलोड करने के लिए बहुत बड़ा बिटमैप" त्रुटियां: http://developer.android.com/training/displaying-bitmaps/load-bitmap.html – Adam

+0

मेरे लिए काम करता है! आपका बहुत बहुत धन्यवाद! @ कॉमन्सवेयर कृपया, क्या आपको लगता है कि आप इस प्रश्न के साथ मेरी मदद कर सकते हैं http://goo.gl/wO9G2N – eddy

7

भी संभव:

java.io.FileInputStream in = openFileInput("myfile.png"); 
iv.setImageBitmap(BitmapFactory.decodeStream(in)); 
+7

यह BitmapFactory.decodeFile (पथ) से भी बेहतर क्यों है? –

1
bitmap = BitmapFactory.decodeFile(imageInSD); 
3
iv.setImageURI(Uri.fromFile(in)); 
+0

कोड की एक पंक्ति प्रदान करने के बजाय कृपया अपना उत्तर (शब्दों में) विस्तृत करें। – JLRishe

+0

कोड बहुत स्पष्ट लगता है – Nevir

1

क्यों इस तरह से नहीं:

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1); 
Drawable d = Drawable.createFromPath(PATH TO FILE); 
MyImageView.setImageDrawable(d); 
0

decodeStream() और decodeFile() बीच कोई अंतर नहीं होनी चाहिए। decodeFile() विधि इनपुटस्ट्रीम खोलती है और decodeStream() पर कॉल करती है। यह पहले से ही इस link

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