Comment obtenir un objet Bitmap à partir d'un Uri (si je réussis à le stocker dans
/data/data/MYFOLDER/myimage.png
oufile///data/data/MYFOLDER/myimage.png
) pour l'utiliser dans mon application?
Quelqu'un at-il une idée sur la façon d'accomplir cela?
android
uri
android-image
android-bitmap
ilredelweb
la source
la source
Réponses:
. . IMPORTANT: Voir la réponse de @Mark Ingram ci-dessous et @pjv pour une meilleure solution. . .
Vous pouvez essayer ceci:
Mais rappelez-vous, cette méthode ne doit être appelée qu'à partir d'un thread (pas GUI -thread). Je suis une AsyncTask.
la source
Voici la bonne façon de procéder:
Si vous devez charger de très grandes images, le code suivant le chargera dans des tuiles (en évitant les allocations de mémoire importantes):
Voir la réponse ici
la source
Voici la bonne façon de le faire, en gardant également un œil sur l'utilisation de la mémoire:
L'appel getBitmap () du post de Mark Ingram appelle également decodeStream (), donc vous ne perdez aucune fonctionnalité.
Références:
Android: Obtenez la miniature de l'image sur la carte SD, étant donné l'URI de l'image originale
Gestion des bitmaps volumineux
la source
getPowerOfTwoForSampleRatio()
peut être ignoré. Voir: developer.android.com/reference/android/graphics/…et oui le chemin doit être dans un format comme celui-ci
file:///mnt/sdcard/filename.jpg
la source
C'est la solution la plus simple:
la source
la source
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
Il semble que ce
MediaStore.Images.Media.getBitmap
soit obsolèteAPI 29
. La méthode recommandée consiste à utiliserImageDecoder.createSource
ce qui a été ajouté dansAPI 28
.Voici comment obtenir le bitmap:
la source
Vous pouvez récupérer le bitmap de l'URI comme ceci
la source
la source
Utilisez le métode startActivityForResult comme ci-dessous
Et vous pouvez obtenir un résultat comme celui-ci:
la source
J'ai essayé de nombreuses façons. ce travail pour moi parfaitement.
Si vous choisissez pictrue dans Gallery. Vous devez être prêt à
Uri
partir deintent.clipdata
ouintent.data
, car l'un d'eux peut être nul dans une version différente.la source
vous pouvez faire cette structure:
par cela, vous pouvez facilement convertir un uri en bitmap. j'espère vous aider.
la source
Encart de ce
getBitmap
qui est depricated maintenant j'utilise l'approche suivante dans Kotlinla source
la source
(KOTLIN) Donc, au 7 avril 2020, aucune des options mentionnées ci-dessus ne fonctionnait, mais voici ce qui a fonctionné pour moi:
Si vous souhaitez stocker le bitmap dans un val et définir une imageView avec, utilisez ceci:
val bitmap = BitmapFactory.decodeFile(currentPhotoPath).also { bitmap -> imageView.setImageBitmap(bitmap) }
Si vous souhaitez simplement définir le bitmap sur et imageView, utilisez ceci:
BitmapFactory.decodeFile(currentPhotoPath).also { bitmap -> imageView.setImageBitmap(bitmap) }
la source
Méthode complète pour obtenir l'URI de l'image à partir de la galerie mobile.
la source