5

私は非常に単純なアプリケーションを作成しています。一般化された世界地図を含む 1 つの SVG を表示する必要があります。都市の名前 (svg 長方形) をクリックして、その都市に対応する別の SVG を表示する必要があります。また、すべての SVG はズームとパンをサポートする必要があります。

SVG でズームとパンをサポートすることができましたが、これは完璧に機能します。そのために、 SVG をレンダリングするためにsvg-androidライブラリを使用し、スケール イベントとタッチ イベントをパン、ズーム、キャプチャするためにカスタマイズされたTouchImageViewを使用しています。しかし、Android の SVG でクリック可能な領域を作成することは不可能のようです。

すべてのユーザー インタラクション (タッチ時またはスケール時) および SVG をクリックするたびに興味のある領域の位置を再計算して、自分の領域 (長方形のリスト) にそのポイントが含まれているかどうかを確認し、対応するアクションを実行するために力ずくで試しました。

MotionEvent#getX/Y計算のルールや類似の方法が理解できないので、うまくいきません。固定SVGではこれを達成できるかもしれませんが、ズーム可能では実際にはできません。

ヒントはありますか?これはAndroidでも可能ですか?

4

1 に答える 1