我想获得确切的位置和大小,或者至少是 ImageView 中包含的图像的缩放比例,因为我需要另一个具有相同大小的 ImageView 用于绘图。
我的原始图像大约为 1680x1050,并以“fitcenter”作为缩放类型显示在图像视图上。它已正确缩放。
我尝试了不同的方法来获得绘制图像的缩放/边界:
imgv.getDrawable().getBounds();
返回图像的原始大小(1680x1050)
imgv.getDrawingRect(outRect);
让我得到图像视图的大小,但不是它的内容大小
imgv.getScaleX();
返回 1.0,这怎么可能?(图像缩放正确,大约 1000x500px)
imgv.getMatrix().getValues(values);
float scaleX = values[Matrix.MSCALE_X];
float scaleY = values[Matrix.MSCALE_Y];
还说没有应用缩放,为什么?
我现在有点绝望,非常感谢你的帮助。
缩放和定位发生在哪里,我如何获得它?
编辑,附加信息:
ImageView 的内容是这样创建的:
bitmap = Bitmap.createBitmap(imgWidth, imgHeight, Config.ARGB_8888);
imgv.setImageBitmap(bitmap);
canvas = new Canvas(bitmap);
之后我两个都做,在画布上绘图并直接使用 bitmap.setPixels(....) 设置位图的像素,然后是 ImageView.invalidate。