2009-11-16 16 views
11

मैं एक छवि दर्शक उद्देश्य के बाद से एक पीएनजी या जेपीजी डाउनलोड करना चाहता हूं, लेकिन इसे काम पर नहीं ला सकता।ACTION_VIEW इरादे में छवि देखें?

Bitmap bmp = getImageBitmap(jpg); 
String path = getFilesDir().getAbsolutePath() + "/test.png"; 
File file = new File(path); 
FileOutputStream fos = new FileOutputStream(file); 
bmp.compress(CompressFormat.PNG, 100, fos); 
fos.close(); 

Intent intent = new Intent(); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(path)), "image/png"); 
startActivity(intent); 

मुझे पता है (मेरे एप्लिकेशन में कहीं यह मेरे imageView उदाहरणों की आपूर्ति के लिए एक ही दिनचर्या का उपयोग करें) बिटमैप ठीक डाउनलोड किया जाता है - मुझे लगता है कि यह ठीक फाइल करने के लिए लिखा था, मैं इसे डिस्क पर देख सकते हैं और फ़ाइल आकार है सही बात। आशय शुरू की है, लेकिन एक अपवाद फेंक दिया जाता है:

त्रुटि/ImageManager (1345): अपवाद डिकोडिंग बिटमैप java.lang.NullPointerException

मिला तो नई गतिविधि सिर्फ वहाँ बैठता है, खाली। यह कैसे काम करता है?

उत्तर

24

Android issue 2092 देखें जो आप वर्णन कर रहे हैं उसके समान लगता है। मुद्दा बताता है, "Bitmap.compress() इंडेक्स किए गए रंग मोड (आरजीबी रंग मोड के बजाय) में सहेजी गई पीएनजी फ़ाइलों के लिए विफल रहता है, हालांकि, पहली टिप्पणीकर्ता सोचता है कि," ऐसा लगता है कि यह अनुक्रमित रंग समस्या नहीं बल्कि एक पीएनजी समस्या है। "

ऐसा लगता है कि अपने कोड की तरह ठीक है, इस Android टुकड़ा की तुलना:

Intent intent = new Intent(); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
File file = new File("/sdcard/test.mp4"); 
intent.setDataAndType(Uri.fromFile(file), "video/*"); 
startActivity(intent); 

Intent intent = new Intent(); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
File file = new File("/sdcard/test.mp3"); 
intent.setDataAndType(Uri.fromFile(file), "audio/*"); 
startActivity(intent); 
+1

यदि मैं अधिक संख्या में वीडियो खेलना चाहता हूं तो एक वीडियो कैसे चला सकता है दूसरा यह संभव इरादा है (<वीडियो लिंक की सरणी>, "वीडियो/*"); – andrewww

+3

@andrewww महान सवाल, मुझे लगता है कि आपको इसे एक नए प्रश्न के रूप में पूछना चाहिए। मुझे यकीन नहीं है, लेकिन मुझे यकीन है कि यहां कोई व्यक्ति जानता होगा। हालांकि वे इसे इस टिप्पणी में कभी नहीं देख पाएंगे। –

4

एक अन्य समस्या फ़ाइल पर अनुमतियों को हो सकता है। आम तौर पर आपका/डेटा/डेटा/[ऐप]/निर्देशिका दुनिया को पठनीय नहीं है, और आपके स्वामित्व वाले अनुप्रयोग "app_XX" उपयोगकर्ता/समूह के स्वामित्व में हैं। या तो सुनिश्चित करें कि आपकी अनुमतियां सही हैं, या सुनिश्चित करें कि फ़ाइल एक ऐसी जगह पर है जहां दोनों एप्लिकेशन पढ़ सकते हैं (emms, या sd card)

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