2009-11-16 24 views
11

Bir resim görüntüleyici amacında bir sonraki adımdan indirdiğim bir png veya jpg'yi göstermek istiyorum, ancak işe yaramayabilir.Resimde ACTION_VIEW amacı?

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); 

(benim app başka yerde bildiğim ImageView örneklerini temin için aynı rutini kullanın) Bitmap Tamam indirilir biliyorum - Tamam dosyaya yazdım düşünüyorum, ben diskte görebilir ve dosya boyutu doğru. niyet başlatılır ancak bir istisna atılır:

HATA/ImageManager'ı (1345): istisna çözme bitmap java.lang.NullPointerException

var sonra yeni etkinlik sadece boş, orada oturur. Bu nasıl çalışıyor?

cevap

24

Android issue 2092'u açıklamak, tanımladığınız şeye benziyor. Sorun, "Bitmap.compress(), Dizine Alınmış Renk Modunda (RGB renk modu yerine) kaydedilen PNG dosyaları için başarısız oluyor" diyor, ancak ilk yorum yapan kişi, "bunun dizinlenmiş bir renk sorunu değil, bir PNG sorunu olduğunu düşünüyor. "

kod gayet gibi görünüyor

, bu Android pasajı ile karşılaştırın:

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

Birden fazla video oynatmak istiyorum tek tek Videoyu bir sonra nasıl yürütebilirim başka bir olası niyet (

+3

@andrewww büyük soru, bence bunu yeni bir soru olarak sormalısın. Emin değilim, ama eminim ki burada birileri biliyordur. Ancak bu yorumda asla görmeyecekler. –

4

başka sorun dosyada izinleri olabilir. Tipik olarak sizin/data/data/[app]/dizinleriniz dünya tarafından okunabilir değildir ve sizin tarafınızdan "app_XX" kullanıcı/gruba aittir. İzinleriniz doğru olduğundan emin olun veya dosyanın her iki uygulamanın da okuyabileceği bir yerde olduğundan emin olun (emms veya sd card)