J'essaie de capturer une image à partir d'une application de caméra existante, enregistrer l'image dans un dossier personnalisé, et afficher la vignette et imageView. La caméra fournit la miniature aussi longtemps que je ne l'ai pas spécifié où enregistrer le fichier:Comment enregistrer la vignette de l'image ET enregistrer le fichier dans un dossier personnalisé sous Android
Je peux obtenir la vignette de l'intention de retour:
...
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");
}
Ou je peux enregistrer le fichier dans un dossier spécifié (qui fonctionne très bien)
...
Intent i = = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra((MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(i)
}
mais la vignette n'est stockée plus dans les « données » extra intention, et lorsque je tente de récupérer la vignette, je reçois une erreur (ce qui est de mon 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
Comme vous pouvez le voir, le champ renvoyé est null au lieu de la miniature de l'image. J'ai essayé de décoder le bitmap par la suite pour générer une vignette directement à partir du fichier, mais cela prend trop de temps (même en cas de sous-échantillonnage je n'ai plus d'erreur de mémoire), et il semble contre-intuitif de faire le travail deux fois. Aucune suggestion?
Je pense que [cette réponse] [1] peut vous aider pour specifing répertoire de fichiers. [1]: http://stackoverflow.com/a/9734268/1172945 – Tugrul