Comment puis-je redimensionner une image avant de l'afficher dans une vue avec Android Image Universelle de Chargeur?
J'ai appliqué avec succès l'Image Universelle de Chargeur de bibliothèque (version 1.8.3) de mon application, et je suis en train de redimensionner l'image avant de l'afficher dans le contrôle gridview élément (parce que parfois l'image est trop grande pour la mettre en cache dans la mémoire.)
Voici ce que je suis en train d'essayer:
...
BitmapFactory.Options resizeOptions = new BitmapFactory.Options();
resizeOptions.inSampleSize = 3; //decrease size 3 times
resizeOptions.inScaled = true;
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.blank)
.showImageForEmptyUri(R.drawable.no_image)
.cacheInMemory()
.cacheOnDisc()
.decodingOptions(resizeOptions)
.build();
...
Ce code n'est pas de faire une image de 3 fois plus faible pour une raison quelconque.
Fait que quelqu'un ait une meilleure façon de redimensionner une image exactement de la densité spécifiée?
Novoda ImageLoader fera automatique des vignettes et des niveaux de mise en cache pour vous 🙂 github.com/novoda/ImageLoader
OriginalL'auteur John F | 2013-04-01
Vous devez vous connecter pour publier un commentaire.
Lire Java docs attentivement:
Aussi regarder
ImageSizeUtil.defineTargetSizeForView(ImageView imageView, int maxImageWidth, int maxImageHeight)
qui définit la taille de la cible pour les images:UIL définit résultat taille du Bitmap selon
imageScaleType
ettargetSize
(etImageView
's scaleType).J'utilise des images de grande taille alors imageview semble parfait, mais lib ne peut pas mettre en images, cache..." Que voulez-vous dire par là?
ok, permettez-moi de périphrases, si j'utilise des petites images (120x80) ensuite votre bibliothèque caches très bien et le défilement à travers ma grille de point de vue, je que les images sont stockées dans la mémoire cache après l'extraction à partir du web. Mais si l'utilisation de grandes images (640 x 480) de votre bibliothèque ne possède pas de cache et charges d'images à chaque fois que j'ai faites défiler l'affichage de la grille.
UIL ne met pas en cache les images que si ne dis pas de le faire. Activer
.cacheInMemory()
et/ou " cacheOnDisc()' dans les options d'affichage et vos images seront mis en cache. Également envisager de mémoire taille de la mémoire cache. La mémoire cache est limitée de sorte que certaines images peuvent être supprimés si la taille du cache dépasse la limite.ok, je vais jouer avec les options, merci pour les conseils
OriginalL'auteur NOSTRA
Essaie juste de faire ceci:
OriginalL'auteur Bunyod
Vous pouvez définir l'imageview hauteur et en xml. Vous image s'adapter exactement à la hauteur et de la largeur. Votre téléchargé l'image correspond à la hauteur et la largeur mentionnée dans votre xml.
Vous pouvez également jeter un oeil à la question qui est semblable à la vôtre.
https://github.com/nostra13/Android-Universal-Image-Loader/issues/183
OriginalL'auteur