私は picasso ライブラリを使用して画像をダウンロードし、imageViewにロードしています。 imageViewsにロードする前に、イメージの幅と高さを取得する方法を知りたいですか?
2つのimageViewを含むアダプターを持つリストビューがあります(1つは垂直で、もう1つは水平です)。画像の幅と高さに応じて、画像を画像ビューの1つに読み込みます。
ビットマップの次元を取得するには、それをダウンロードする必要があります。次のような同期メソッド呼び出しを使用する必要があります。
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) {
}
});
私のために働きなさい。
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() {
}
});