BitmapFactory.decodeFile retourne null même image existe
De l'enregistrement du fichier:
FileOutputStream fo = null;
try {
fo = this.openFileOutput("test.png", Context.MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bitmap.compress(CompressFormat.PNG, 100, fo)
De charger le fichier:
String fname = this.getFilesDir().getAbsolutePath()+"/test.png";
Bitmap bMap = BitmapFactory.decodeFile(fname);
i.setImageBitmap(bMap);
La dernière ligne donne une exception de pointeur null, pourquoi est-BitmapFactory.decodeFile retourner null? Je peux vérifier que le fichier est correctement enregistrée en tant que je peux le tirer à l'aide de la bad et de voir la png s'affiche pas correctement.
Avez-vous fermé le fichier de flux de sortie? Qu'est-ce que "je", et pourquoi a-t-elle un caractère unique nom?
Oui il est fermé. j'étais un affichage de l'image, qui a été définie à null, parce que j'ai référencé de manière incorrecte.
Oui il est fermé. j'étais un affichage de l'image, qui a été définie à null, parce que j'ai référencé de manière incorrecte.
OriginalL'auteur stealthcopter | 2010-08-02
Vous devez vous connecter pour publier un commentaire.
Si le
NullPointerException
est directement sur cette ligne:Alors votre problème est que
i
estnull
. Étant donné que vous appelez setImageBitmap(), je suppose quei
est unImageView
-- assurez-vous que votrefindViewById()
appel de travail.Aussi, vous devez utiliser ce qui suit pour obtenir
fname
:OriginalL'auteur CommonsWare
Lorsque vous utilisez le paramètre options dans le DecodeFile méthode assurez-vous que le InJustDecodeBounds propriété est définie à faux ou sinon, il retournera toujours la valeur null. Il peut être défini à true lorsque vous souhaitez que le fichier soit décodé, mais vous n'avez pas besoin de plus dans votre app/code. De cette façon aucune mémoire supplémentaire doit être alloué. Voir ici pour un exemple.
OriginalL'auteur Jeroen VL