j'utilise picasso library pour télécharger et charger des images dans imageView. Maintenant, je veux savoir comment obtenir une largeur et une hauteur d'image avant de les charger dans imageViews?
j'ai un ListView avec un adaptateur qui contient deux imageView (l'un d'eux est vertical et un autre est horizontal). dépend de la largeur et de la hauteur de l'image. Je souhaite charger l'image dans l'une des vues.
Vous pouvez obtenir les dimensions Bitmap uniquement après l'avoir téléchargée - vous devez utiliser un appel de méthode synchrone comme ceci:
final Bitmap image = Picasso.with(this).load("http://").get();
int width = image.getWidth();
int height = image.getHeight();
Après cela, vous pouvez appeler à nouveau load avec la même URL (elle sera récupérée dans le cache):
Picasso.with(this).load("http://").into(imageView)
Edit: Peut-être un meilleur moyen:
Picasso.with(this).load("http://").into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
imgView.setImageBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
Travaille pour moi.
Picasso.with(context).load(imageLink).into(imageView, new Callback() {
@Override
public void onSuccess() {
Picasso.with(context).load(imageLink).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Log.d("ComeHere ", " W : "+ width+" H : "+height);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
@Override
public void onError() {
}
});