BitmapFactory.decodeFile devuelve una imagen nula incluso existe
Guardando el archivo:
FileOutputStream fo = null; try { fo = this.openFileOutput("test.png", Context.MODE_WORLD_READABLE); } catch (FileNotFoundException e) { e.printStackTrace(); } bitmap.compress(CompressFormat.PNG, 100, fo)
Cargando el archivo:
- Android: Compartir mapa de bits no guardado en SD
- Define el recuento de bytes de mapa de bits y establece el límite en el búfer de mapa de bits
- Cómo girar la imagen de "onPictureTaken" sin Excepción de memoria insuficiente?
- ¿Cómo cargar imágenes grandes en Android y evitar el error de memoria?
- BitmapFactory.decodeStream devolver null cuando se establecen las opciones
String fname = this.getFilesDir().getAbsolutePath()+"/test.png"; Bitmap bMap = BitmapFactory.decodeFile(fname); i.setImageBitmap(bMap);
La última línea da una excepción de puntero nulo, ¿por qué BitmapFactory.decodeFile devuelve null? Puedo verificar que el archivo se está guardando correctamente como puedo tirar con adb y ver el png que muestra correctamente.
- Dibujar círculo en mapa de bits
- Bitmapfun El código de ejemplo da NullPointerException
- Imagen de Android seleccionada de la galería La orientación siempre es 0: Exif TAG
- Cambiar el tamaño de un mapa de bits
- Los bordes en la imagen no son suaves después de setpixels en android
- ¿Por qué a veces Bitmaps son los mismos objetos?
- Cómo guardar la imagen a través de la captura en android a php?
- Fábrica de mapas de bits de Android sin memoria Segunda foto
Si la NullPointerException
está directamente en esta línea:
I.setImageBitmap (bMap);
Entonces su problema es que i
es null
. Dado que usted está llamando a setImageBitmap (), supongo que i
es un ImageView
– asegúrese de que su llamada findViewById()
está funcionando.
Además, debe utilizar lo siguiente para obtener fname
:
String fname = new Archivo (getFilesDir (), "test.png"). GetAbsolutePath ();
Cuando se utiliza el parámetro options en el método DecodeFile asegúrese de que la propiedad InJustDecodeBounds se establece en false o de lo contrario siempre devolverá null. Esto se puede establecer en true cuando sólo desea que el archivo se descodifique, pero no lo necesita más en su aplicación / código. De esta manera no se necesita asignar memoria adicional. Vea aquí un ejemplo.