假设我的应用程序显示一个 SVG 图像(由 svg-android 库从 svg 转换为 drawable),一旦用户点击它,我需要知道他点击了哪个 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>
如果点击 35x35 应该返回“RCTOP”,如果点击 55x55 应该返回“RCBTM”...
如果某处有这样的库,我有什么想法还是我应该从头开始编写?
谢谢!
最佳答案
你可以使用PanZoom
,它可以像这样捕获点击事件:
$panzoom.on('panzoomend', function( e, panzoom, matrix, changed ) {
if ( !changed ) {
// The user clicked or tapped and did not do a move with panzoom
}
});
关于android - 如何在 Android 的 SVG 上找到被点击的地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8511122/