
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>
Вы можете поделиться своим xml?
@YahyaMukhtar: Я обновил свои вопросы .. Пожалуйста, проверьте, я хочу получить высоту моего изображения программно.
@AshutoshTripathi: Я уже пробовал это. но это не работает.
Пожалуйста, посмотрите ответ, который я опубликовал
@YahyaMukhtar: не работает
проверьте эту ссылку, надеюсь, это поможет вам введите описание ссылки здесь
@Anuj: Это не рабочий человек ...
Использование ImageView.getDrawable().getInstrinsicWidth() и
getIntrinsicHeight() вернет исходные размеры.
Получение 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?
получить исходный Габаритные размеры. изображения
не понял ... не могли бы вы объяснить?
см. мой ответ на обновление @PragyaMendiratta
Попробуй это :-
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
@PragyaMendiratta, пожалуйста, проверьте обновленный ответ .. !!
Я отредактировал свой вопрос с изображением. пожалуйста, проверьте мой комментарий в ответе @yahya mukhtar ....... высота изображения больше, чем изображение, с кодом, который вы упомянули ...
@PragyaMendiratta обновил ответ, пожалуйста, проверьте !!
@PragyaMendiratta, пожалуйста, не стесняйтесь спрашивать, если вы не поняли !!
@shantanu, что делать, если изображение не помещается в imageView,. . например, есть черное пространство, как показано на картинке, опубликованной pragyaMendiratta, будет ли это включать это черное пространство по высоте / ширине или нет ??
@NirmalPrajapat привет, этого не должно быть ... если его fitXy вместо center crop, он должен работать, принимая всю высоту и ширину !!
Я не использую scalType. .
@shantanu: Даже я пробовал ваше обновленное решение ... оно не дает точной высоты изображения
какой мобильный вы используете @PragyaMendiratta
без черных пробелов @NirmalPrajapat
@PragyaMendiratta, если вы используете большое устройство, попробуйте displayMetrics.xxhdpi вместо displayMetrics.xdpi
@shantanu: Я нарисовал вид такой же высоты, рассчитанный в соответствии с вашим обновленным решением. пожалуйста, проверьте мой обновленный пост
Я использую moto g (2 поколения) и не получаю опцию displayMetrices.xxhdpi @shantanu
@SantanuSur: ты нашел какое-нибудь решение для этого?
Нет, если я узнаю .. я обновлю ответ !! @PragyaMendiratta
Bitmap b = ((BitmapDrawable) imag.getDrawable()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();
получение следующей ошибки: ColorDrawable не может быть преобразован в android.graphics.drawable.BitmapDrawable
@Pragya проверь это сейчас.
Я получаю высоту h = 882 и imageview (imagHeight) с помощью imageView.getHeight () = 672 ..........
в соответствии с этой высотой растрового изображения .. высота изображения больше, чем изображение .. это неправильно
Попробуйте это: - stackoverflow.com/questions/12463155/…