如何在Imageview中获取Image的高度?

时间:2018-03-10 09:45:01

标签: android android-layout android-imageview

enter image description here enter image description here我在imageview中设置了一个图片。它显示在屏幕的中心,因为我已使其父布局(相对布局)与父级匹配。 Imageview的高度和宽度也设置为与父级匹配。

我想在imageview中获取Image的高度和宽度。

我用过:

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>

3 个答案:

答案 0 :(得分:1)

  1. 使用ImageView.getDrawable().getInstrinsicWidth()getIntrinsicHeight()将返回原始尺寸。

  2. 获取DrawableImageView.getDrawable()并将其投射到。{ BitmapDrawable,然后使用BitmapDrawable.getBitmap().getWidth()getHeight()也会返回原始图片及其尺寸。

  3. 尝试以下代码:

    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
    

    参考:Trying to get the display size of an image in an ImageView

答案 1 :(得分:0)

试试这个: -

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

P.S : - h图像高度(原始图像高度

<强>更新

如果你想获得里面的确切高度,请试试这个: -

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

height_in_dp dp 中图片的高度 !!

答案 2 :(得分:0)

 df_g.apply(lambda x: x)