2009-11-16 19 views
11

Me gustaría mostrar una png o jpg que descargué de la siguiente con la intención del visor de imágenes, pero no puedo hacer que funcione.¿Ver imagen en el intento de 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); 

Sé el mapa de bits se descarga bien (usar la misma rutina para suministrarla mis casos ImageView en otro lugar en mi aplicación) - Creo que escribió para presentar bien, puedo ver que en el disco y el tamaño del archivo es correcto. La intención es lanzado, pero se produce una excepción:

ERROR/ImageManager (1345): got excepción de decodificación de mapa de bits java.lang.NullPointerException

entonces la nueva actividad sólo se sienta allí, en blanco. ¿Como funciona esto?

Respuesta

24

Consulte Android issue 2092 suena similar a lo que está describiendo. El problema dice: "Bitmap.compress() falla para archivos PNG guardados en modo de color indexado (en lugar de modo de color RGB)", sin embargo, el primer comentarista piensa que "parece que no es un problema de color indexado sino un problema PNG". "

Parece que el código está bien, compararlo con este fragmento 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

Si quiero reproducir más videos uno por uno, ¿cómo puedo reproducir uno después? otro es posible (, "video/*"); – andrewww

+3

@andrewww gran pregunta, creo que deberías preguntar eso como una nueva pregunta. No estoy seguro, pero estoy seguro de que alguien aquí sabrá. Sin embargo, nunca lo verán en este comentario. –

4

Otro problema puede ser permisos en el archivo. Por lo general, sus/data/data/[app]/directorios no son legibles en todo el mundo, y son propiedad de sus aplicaciones "app_XX" usuario/grupo. Asegúrese de que sus permisos sean correctos o asegúrese de que el archivo esté en un lugar que ambas aplicaciones puedan leer (emms o tarjeta sd)

Cuestiones relacionadas