我正在尝试为我的应用程序制作一个带有可点击区域的自定义视图。这些区域相对于将填充该视图的图像像素坐标。我已将这些图像放在 drawable-nodpi 以避免系统缩放。
我的自定义视图采用其中一张图像,调整其大小以保持纵横比以适合其父级,然后将视图调整为结果图像的大小。所以此时我有一个保持源比例的视图,因此生成的视图点击(onTouch event.getX 和 event.getY)坐标是相对于原始图像像素坐标的。
另一方面,我拥有定义活动开始时加载的 xml 文件中可点击区域的形状的所有坐标。这些区域由一种类型定义:圆形或矩形。
circle:根据原始图像以 px 为单位的中心 xy 和半径
rect:根据原图以px为单位居中xy,宽高
现在我需要检测我的触摸 xy 是否在任何这些区域的坐标内,但请记住我的原始图像遭受的缩放。
如何检测我的触摸坐标和可点击区域坐标之间的“碰撞”?我的意思是,即使不调整原始图像的大小,我该如何计算?