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

时间:2015-02-19 12:26:59

标签: android imageview scale

我有ImageView MathParent身高和宽度
在我的活动中,它将资源中的图片加载到ImageView。如何在ImageView缩放后获得图片的宽度和高度 我没有在XML中设置android:scaleType 我的意思是这些尺寸! Screenshot

1 个答案:

答案 0 :(得分:1)

您可以使用视图用于显示图像的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));
}

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