如何在Android中的SVG上找到点击的位置?

时间:2011-12-14 20:22:46

标签: android svg

假设我的应用程序显示了SVG图像(由svg转换为svg-android库可绘制),一旦用户点击它,我需要知道他点击了哪个SVG组。

假设我需要将点击坐标传递给某种解析器,该解析器将通过SVG文件并返回到它们所属的组。

例如这样的SVG

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
     y="0px" width="100px" height="100px" viewBox="0 0 100 100" xml:space="preserve">


<g id="RCTOP">
    <polygon fill="#4374B9" points="70,25 25,25 25,70"/>
</g>


<g id="RCBTM">
    <polygon fill="#B84545" points="30,75 75,75 75,30"/>
</g>


</svg>

enter image description here

如果单击,则返回“RCTOP”,例如35x35或“RCBTM”,如果单击55x55 ...

任何想法,如果某处有这样的库,或者我应该从头开始编写它?

谢谢!

1 个答案:

答案 0 :(得分:-1)

您可以使用PanZoom

,它可以捕获这样的点击事件:

$panzoom.on('panzoomend', function( e, panzoom, matrix, changed ) {
  if ( !changed ) {
    // The user clicked or tapped and did not do a move with panzoom
  }
});