ImageView使用Matrix类进行缩放(缩放)和平移(平移).如果您可以获取矩阵,则可以检索缩放/平移视图的(左,上)坐标.
可缩放代码和可以在stackoverflow posts之一中使用pannable extended imageview
在该帖子中,您将看到扩展的ImageView类将矩阵作为用于缩放/转换的成员变量.
您可以使用以下代码从矩阵中获取缩放/平移的ImagevIew(实际上是位图)的边界.
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG,"Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom + " " + mOverAllScale + " ");
新添加的答案
要理解下面的代码,你需要通过这个link并理解.
翻译
当用户拖动图像时,屏幕坐标(绝对)和位图坐标不同步. [您写入位图的任何内容都会通过画布显示(在onDraw()中)]如果应用着色,用户会看到它应用于位图图像上的其他区域.要纠正此问题,您需要进行翻译.翻译会将用户输入坐标(屏幕坐标)更改为位图坐标(按用户的意图)
以下代码段可以帮助您进行翻译.
让用户输入坐标为(x,y)然后,
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG,"Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom