web-dev-qa-db-ja.com

AndroidでImageView / Bitmapの高さと幅を取得する方法

ImageViewまたは背景画像のいずれかにある画像ビットマップの高さと幅を取得したい。私を助けてください、どんな助けも感謝されます。

24
abhishek ameta

GetWidth()とgetHeight()を使用してImageViewの高さと幅を取得できますが、これは画像の正確な幅と高さを提供しません。 BitmapDrawableにドローアブルして、イメージをビットマップとして取得します。ここから幅と高さを取得できます

Bitmap b = ((BitmapDrawable)imageView.getBackground()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();

またはここで好き

imageView.setDrawingCacheEnabled(true);
Bitmap b = imageView.getDrawingCache();
int w = b.getWidth();
int h = b.getHeight();

上記のコードは、デバイスのスクリーンショットのような現在のimageviewサイズのビットマップを提供します

imageViewサイズのみ

imageView.getWidth(); 
imageView.getHeight(); 

描画可能な画像があり、そのサイズが必要な場合は、このようにすることができます

Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();      
82
Pratik

何らかの理由で、受け入れられた答えは私にはうまくいきませんでしたが、代わりにこのようなターゲット画面のdpiに従って画像の寸法を達成しました。

方法1

Context context = this; //If you are using a view, you'd have to use getContext();
Resources resources = this.getResources();
BitmapFactory.Options bounds = new BitmapFactory.Options();
bounds.inJustDecodeBounds = true;
BitmapFactory.decodeResource(resources, R.drawable.cake, bounds); //use your resource file name here.
Log.d("MainActivity", "Image Width: " + bounds.outWidth);

ここに元のリンクがあります

http://upshots.org/Android/android-get-dimensions-of-image-resource

方法2

BitmapDrawable b = (BitmapDrawable)this.getResources().getDrawable(R.drawable.cake);
Log.d("MainActivity", "Image Width: " + b.getBitmap().getWidth());

画像リソース内の正確なピクセル数は表示されませんが、おそらく誰かがさらに説明できる意味のある数を示しています。

2
Naveed Abbas