在屏幕上绘制后获取图像尺寸

Get image dimensions after it draws in screen

我有一个 ImageView 高度和宽度 MathParent
在我的 activity 中,它将图片从资源加载到 ImageView。我怎样才能在 ImageView 缩放后得到图片的宽度和高度。
我没有在 XML
中设置 android:scaleType 我的意思是这些尺寸!

您可以使用视图用来显示图像的 matrix 做很多事情。

这里我计算图像绘制的比例:

private float scaleOfImageView(ImageView image) {
    float[] coords = new float[]{0, 0, 1, 1};
    Matrix matrix = image.getImageMatrix();
    matrix.mapPoints(coords);
    return coords[2] - coords[0]; //xscale, method assumes maintaining aspect ratio
}

将比例应用于图像尺寸给出显示的图像尺寸:

private void logImageDisplaySize(ImageView image) {
    Drawable drawable = image.getDrawable();
    int width = drawable.getIntrinsicWidth();
    int height = drawable.getIntrinsicHeight();
    float scale = scaleOfImageView(image);
    float displayedWidth = scale * width;
    float displayedHeight = scale * height;
    Log.d(TAG, String.format("Image drawn at scale: %.2f => %.2f x %.2f",
            scale, displayedWidth, displayedHeight));
}

我怀疑你并不真正关心图像大小,我怀疑你想将触摸点映射回图像上的坐标,这个答案展示了如何做到这一点(也使用图像矩阵):