web-dev-qa-db-fra.com

obtenir la largeur et la hauteur d'une image avec la bibliothèque Picasso

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.

16
user2549089

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) {

            }
        });
32
Yuraj

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() {

        }
    });
2
Chattip Soontaku