Je prends une photo avec l'appareil photo en utilisant
Intent intent = new Intent(Android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult( intent, 22 );
Une fois l'activité terminée, j'écris l'image bitmap dans un fichier PNG.
Java.io.FileOutputStream out = openFileOutput("myfile.png", Context.MODE_PRIVATE);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
Cela va bien, et je peux voir que le fichier est créé dans l'espace de données privé de mon application.
Je ne parviens pas à afficher cette image ultérieurement à l'aide d'un ImageView.
Quelqu'un peut-il suggérer un code pour le faire?
Si j'essaie de créer un fichier avec des séparateurs de chemin, cela échoue. Si j'essaie de créer un Uri à partir d'un nom sans séparateurs, cela échoue.
Je peux ouvrir le fichier OK en utilisant:
Java.io.FileInputStream in = openFileInput("myfile.png");
Mais cela ne me donne pas le Uri dont j'ai besoin pour définir une image avec
iv.setImageURI(u)
Résumé: j'ai l'image dans un fichier png dans les données de l'application privée. Quel est le code pour définir cela dans un ImageView?
Merci.
Essayez BitmapFactory.decodeFile()
puis setImageBitmap()
sur ImageView
.
Également possible:
Java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));
iv.setImageURI(Uri.fromFile(in));
Pourquoi pas de cette façon:
ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);
bitmap = BitmapFactory.decodeFile(imageInSD);
Il ne devrait y avoir aucune différence entre decodeStream()
et decodeFile()
. La méthode decodeFile()
ouvre un flux d'entrée et appelle decodeStream()
. Cela a déjà été répondu à ce link