Как получить высоту изображения в Imageview?

Как получить высоту изображения в Imageview?Как получить высоту изображения в Imageview?I установили изображение в режиме просмотра изображений. Он отображается в центре экрана, поскольку я сделал его родительский макет (относительный макет), чтобы он соответствовал родительскому. Высота и ширина изображения также устанавливаются в соответствии с родительским.

Я хочу получить высоту и ширину изображения в просмотре изображений.

Я использовал :

int imagWidth = imageView.getWidth();
int imagHeight = imageView.getHeight();

но благодаря этому мы получаем высоту и ширину Imageview.

Вот мой xml:

<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:id = "@+id/rl_root"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent">

    <ImageView
        android:id = "@+id/imag"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:adjustViewBounds = "true"
        android:background = "@android:color/black"
        android:src = "@drawable/image2" />
</RelativeLayout>

Попробуйте это: - stackoverflow.com/questions/12463155/…

Ashutosh Tripathi 10.03.2018 10:47

Вы можете поделиться своим xml?

Yahya Mukhtar 10.03.2018 10:49

@YahyaMukhtar: Я обновил свои вопросы .. Пожалуйста, проверьте, я хочу получить высоту моего изображения программно.

Pragya Mendiratta 10.03.2018 10:52

@AshutoshTripathi: Я уже пробовал это. но это не работает.

Pragya Mendiratta 10.03.2018 10:53

Пожалуйста, посмотрите ответ, который я опубликовал

Yahya Mukhtar 10.03.2018 10:56

@YahyaMukhtar: не работает

Pragya Mendiratta 10.03.2018 10:59

проверьте эту ссылку, надеюсь, это поможет вам введите описание ссылки здесь

Anuj 10.03.2018 11:26

@Anuj: Это не рабочий человек ...

Pragya Mendiratta 10.03.2018 13:25
3
8
839
3

Ответы 3

  1. Использование ImageView.getDrawable().getInstrinsicWidth() и getIntrinsicHeight() вернет исходные размеры.

  2. Получение Drawable через ImageView.getDrawable() и трансляция его на BitmapDrawable, затем с помощью BitmapDrawable.getBitmap().getWidth() и getHeight() также возвращает исходное изображение и его размеры.

попробуйте ниже код:

ImageView.getDrawable().getIntrinsicHeight()//original height of underlying image
ImageView.getDrawable().getIntrinsicWidth()//original width of underlying image
imageView.getMeasuredHeight();//height of imageView
imageView.getMeasuredWidth();//width of imageView

ссылка: Попытка получить размер отображения изображения в ImageView

каков будет результат вашего решения - px или dp?

Pragya Mendiratta 10.03.2018 11:02

получить исходный Габаритные размеры. изображения

Ali 10.03.2018 11:08

не понял ... не могли бы вы объяснить?

Pragya Mendiratta 10.03.2018 11:13
stackoverflow.com/questions/3855218/…Перейдите по этой ссылке для понимания теста
Ali 10.03.2018 11:18

см. мой ответ на обновление @PragyaMendiratta

Ali 10.03.2018 11:33

Попробуй это :-

Bitmap b = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int w = b.getWidth(); 
int h = b.getHeight(); // height of your image

P.S: - h - ВЫСОТА ИЗОБРАЖЕНИЯ (Высота исходного изображения)

Обновлять

Если вы хотите получить точную высоту изображения внутри, imageView попробуйте следующее: -

int height = imageView.getDrawable().getIntrinsicHeight();
int height_in_dp = Math.round(height / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); 

height_in_dp - это высота образа в дп !!

сбой моего приложения: ColorDrawable не может быть преобразован в android.graphics.drawable.BitmapDrawable

Pragya Mendiratta 10.03.2018 10:59

@PragyaMendiratta, пожалуйста, проверьте обновленный ответ .. !!

Santanu Sur 10.03.2018 11:17

Я отредактировал свой вопрос с изображением. пожалуйста, проверьте мой комментарий в ответе @yahya mukhtar ....... высота изображения больше, чем изображение, с кодом, который вы упомянули ...

Pragya Mendiratta 10.03.2018 11:19

@PragyaMendiratta обновил ответ, пожалуйста, проверьте !!

Santanu Sur 10.03.2018 11:34

@PragyaMendiratta, пожалуйста, не стесняйтесь спрашивать, если вы не поняли !!

Santanu Sur 10.03.2018 11:37

@shantanu, что делать, если изображение не помещается в imageView,. . например, есть черное пространство, как показано на картинке, опубликованной pragyaMendiratta, будет ли это включать это черное пространство по высоте / ширине или нет ??

Nirmal Prajapat 10.03.2018 12:13

@NirmalPrajapat привет, этого не должно быть ... если его fitXy вместо center crop, он должен работать, принимая всю высоту и ширину !!

Santanu Sur 10.03.2018 12:18

Я не использую scalType. .

Nirmal Prajapat 10.03.2018 12:21

@shantanu: Даже я пробовал ваше обновленное решение ... оно не дает точной высоты изображения

Pragya Mendiratta 10.03.2018 12:23

какой мобильный вы используете @PragyaMendiratta

Santanu Sur 10.03.2018 12:24

без черных пробелов @NirmalPrajapat

Santanu Sur 10.03.2018 12:26

@PragyaMendiratta, если вы используете большое устройство, попробуйте displayMetrics.xxhdpi вместо displayMetrics.xdpi

Santanu Sur 10.03.2018 12:27

@shantanu: Я нарисовал вид такой же высоты, рассчитанный в соответствии с вашим обновленным решением. пожалуйста, проверьте мой обновленный пост

Pragya Mendiratta 10.03.2018 12:36

Я использую moto g (2 поколения) и не получаю опцию displayMetrices.xxhdpi @shantanu

Pragya Mendiratta 10.03.2018 12:37

@SantanuSur: ты нашел какое-нибудь решение для этого?

Pragya Mendiratta 12.03.2018 11:01

Нет, если я узнаю .. я обновлю ответ !! @PragyaMendiratta

Santanu Sur 12.03.2018 11:01
Bitmap b =  ((BitmapDrawable) imag.getDrawable()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();

получение следующей ошибки: ColorDrawable не может быть преобразован в android.graphics.drawable.BitmapDrawable

Pragya Mendiratta 10.03.2018 11:00

@Pragya проверь это сейчас.

Yahya Mukhtar 10.03.2018 11:03

Я получаю высоту h = 882 и imageview (imagHeight) с помощью imageView.getHeight () = 672 ..........

Pragya Mendiratta 10.03.2018 11:17

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

Pragya Mendiratta 10.03.2018 11:17

Другие вопросы по теме