Estoy tratando de capturar una imagen de una aplicación de cámara existente, guardar la imagen en una carpeta personalizada y mostrar la miniatura en y en imageView. La cámara suministra la miniatura, siempre y cuando no he especificado dónde guardar el archivo:Cómo capturar miniaturas de imágenes Y guardar archivos en una carpeta personalizada en Android
puedo conseguir la miniatura de la intención de volver:
...
Intent i = = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i)
}
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
Bundle extras = intent.getExtras();
Bitmap mImageBitmap = (Bitmap) extras.get("data");
}
O puedo guardar el archivo en una carpeta especificada (que funciona bien)
...
Intent i = = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra((MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(i)
}
pero la miniatura ya no se almacena en los "datos" intención extra, y cuando intento para recuperar la uña del pulgar, me sale un error (esto es de mi LogCat)
10-04 06:30:14.463: E/AndroidRuntime(1967): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity: java.lang.NullPointerException
Como puede ver, el campo devuelto es nulo en lugar de la miniatura del mapa de bits. Intenté decodificar el mapa de bits después para generar una miniatura desde el archivo directamente, pero lleva demasiado tiempo (incluso cuando estoy sin procesar me sale el error de memoria), y parece contradictorio hacer el trabajo dos veces. ¿Alguna sugerencia?
creo que [la respuesta] [1] que puede ayudar a especificando el directorio de archivos. [1]: http://stackoverflow.com/a/9734268/1172945 – Tugrul