我有一张图片(ImageView
)。我在图像上有一些区域。当用户点击屏幕时,我想检测选择了哪个区域。
我已识别原始图像上的区域边界,但MotionEvent
的x和y已关闭。
我尝试了逐像素转换(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics)
),但它们仍处于关闭状态。它当然与屏幕尺寸/密度等有关,但究竟如何获得原始图像的触摸事件的像素值? (反之亦然 - 如何将原始图像坐标转换为与运动事件的x和y相当的东西)
答案 0 :(得分:0)
我设法使用ImageView
(pic
)的右下坐标与实际图像尺寸(568x1207)进行比较计算。
float xCoef = 568f / pic.getRight();
float yCoef = 1207f / pic.getBottom();
float x = event.getX() * xCoef;
float y = event.getY() * yCoef;