我想获得ImageView中包含的图像的确切位置和大小或至少缩放,因为我需要在其上面使用相同大小的另一个ImageView进行绘制。
我的原始图像大约是1680x1050,并以“fitcenter”作为缩放类型显示在imageview上。它缩放正确。
我尝试了不同的东西来获得绘制图像的缩放/界限:
imgv.getDrawable().getBounds();
返回图像的原始大小(1680x1050)
imgv.getDrawingRect(outRect);
为我提供了imageview的大小,但不是它内容的大小
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。