1

我想获得确切的位置和大小,或者至少是 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。

4

0 回答 0