Подтвердить что ты не робот

Получение ширины и высоты изображения с помощью библиотеки picasso

Я использую picasso библиотеку для загрузки и загрузки изображений в imageView. теперь я хочу знать, как я могу получить ширину и высоту изображения перед загрузкой их в imageViews?

У меня есть список с адаптером, который содержит два изображения (один из них является вертикальным, а другой - горизонтальным). зависит от ширины и высоты изображения. Я хочу загрузить изображение в одно из изображений.

4b9b3361

Ответ 1

Вы можете получить размеры битмапа только после загрузки It - вы должны использовать синхронный вызов метода следующим образом:

final Bitmap image = Picasso.with(this).load("http://").get();
int width = image.getWidth();
int height = image.getHeight();

После этого вы можете снова вызвать загрузку с тем же URL-адресом (он будет извлечен из кеша):

 Picasso.with(this).load("http://").into(imageView)

Изменить: Возможно, лучший способ:

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

            }
        });

Ответ 2

Работайте для меня.

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

        }
    });