android - 如何在 Android 的 SVG 上找到被点击的地方?

标签 android svg

假设我的应用程序显示一个 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>

enter image description here

如果点击 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/

相关文章:

java - RuntimeException - java.lang.IllegalArgumentException : column '_id' does not exist

android - 找到棋角后旋转图像

android - 如何以编程方式删除正在进行的通知?

debugging - Google Maps SVG 图像标记图标未在 IE11 中显示

javascript - 使用 GSAP 对 SVG 元素进行动画处理

html - 是否可以让 SVG 比例适合父对象,同时保持静态填充大小?

android - 从我的Android应用程序收到了奇怪/可疑的崩溃报告

Android 线性布局 - 如何将元素保持在 View 底部?

html - HTML 中的内联 SVG - 相同的字体大小呈现更大

graphics - R 将热图简化为 pdf