Как получить высоту и ширину ImageView / Bitmap в Android - PullRequest
24 голосов
/ 16 января 2012

Я хочу получить высоту и ширину растрового изображения, либо в ImageView, либо в качестве фонового изображения. Пожалуйста, помогите мне, любая помощь будет оценена.

Ответы [ 2 ]

81 голосов
/ 16 января 2012

Вы можете получить высоту и ширину ImageView, используя getWidth () и getHeight (), в то время как это не даст вам точную ширину и высоту изображения, для того, чтобы сначала получить высоту ширины изображения, вам нужно получить прорисовку как фон, затем преобразуем drawable в 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.getWidth(); 
imageView.getHeight(); 

Если у вас есть нарисованное изображение, и вы хотите, чтобы этот размер вы могли получить таким образом

Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();      
1 голос
/ 05 января 2018

По какой-то причине принятый ответ не сработал для меня, вместо этого я достиг размера изображения в соответствии с целевым разрешением экрана, как это.

Метод 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());

Он не показывает точное количество пикселей в ресурсе изображения, но значимое число, возможно, кто-то может объяснитьв дальнейшем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...