我正在制作一个非常简单的应用程序。它需要显示一个包含概括世界地图的SVG。通过点击城市名称(svg矩形),我需要显示与该城市对应的另一个SVG。此外,所有SVG都必须支持缩放和平移。
我成功地使SVG支持缩放和平移,并且这完美地运作。为此,我使用svg-android库来渲染SVG,并使用定制的TouchImageView进行平移、缩放和捕获比例和触摸事件。但是,在Android上似乎无法在SVG上创建可点击区域。
我尝试过粗暴的方式,在每次用户交互(触摸或缩放)和每次单击SVG时重新计算我的有趣区域的位置(矩形列表),并检查我的区域是否包含该点,并执行相应的操作。
这不起作用,因为我无法理解计算MotionEvent#getX/Y
和类似方法的规则。也许我可以为固定的SVG实现这一点,但是对于可缩放的SVG,我真的做不到。
有什么提示吗?在Android上是否可能实现这一点?