2011-12-14 10 views
2

私のアプリがSVGイメージ(svg-androidライブラリによってsvgからdrawableに変換されたもの)を表示し、ユーザーがそれをクリックすると、どのSVGグループをクリックしたかを知る必要があるとします。AndroidでSVGのクリックされた場所を見つける方法は?

クリック座標をある種のパーサに渡す必要があるとします。これは、SVGファイルを参照して、どのグループに属しているかを返します。たとえば、このようなSVG 55x55の

<?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" をクリックした場合については

...

任意のどこかにそのような図書館があるかどうか、または私はそれを一から書かなければなりませんか?

ありがとうございます!あなたはPanZoom

を使用することができます

+0

SVG自体から 'onclick'イベントをキャプチャする方法はありませんか?例えば。 '' – robertc

+0

私は信じていませんが、svg-androidライブラリはSVGをdrawableに解析します。 –

+0

@RogerTravisクリックを処理する方法を見つけましたか? – AMerle

答えて

-1

、それは次のようにイベントをクリックしてキャッチすることができます:

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