web-dev-qa-db-ja.com

ピカソライブラリで画像の幅と高さを取得する

私は picasso ライブラリを使用して画像をダウンロードし、imageViewにロードしています。 imageViewsにロードする前に、イメージの幅と高さを取得する方法を知りたいですか?

2つのimageViewを含むアダプターを持つリストビューがあります(1つは垂直で、もう1つは水平です)。画像の幅と高さに応じて、画像を画像ビューの1つに読み込みます。

17
user2549089

ビットマップの次元を取得するには、それをダウンロードする必要があります。次のような同期メソッド呼び出しを使用する必要があります。

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

この後、同じURLでloadを再度呼び出すことができます(キャッシュからフェッチされます):

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

            }
        });
34
Yuraj

私のために働きなさい。

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