ズームインおよびスクロールできるビットマップを含むイメージビューがあります。キャンバスに画像を設定する代わりに、setImageBitmap() メソッドを使用しました。イメージビューは、ユーザーが閲覧できるマップとして機能します。現在、私のアプリケーションでは、ユーザーが画像ビューで選択したポイントでGoogleマップで行われたように、ユーザーがプッシュピンで関心のあるポイントをマークできるようになっています。OnTouch() メソッドの変更された実装を使用して、元のビットマップのどのポイントが選択されたかを取得できるようになったので、マーカーを配置する必要がある正確な場所がわかります。この場所にマーカーを設定し、文字列をデータベースに渡して場所に関する情報を保存し、マーカーがタップされたときにこの情報がバブル/トースト通知に表示されるようにします。
今のところ、画像をスクロールしたり、画像ビューで longTouch イベントを感知したり、タップのポイントを保存したり、新しいアクティビティに移動して情報を収集してデータベースに追加したりできます。元のイメージビューにマーカーを設定する方法が見つからないようです。また、ここで ArrayList 実装を使用して、データベース フィールドの ID に関連付けることができる個々の ID を持つマーカーを取得する必要があると思いますが、それを実装する方法がわかりません。
インターネットで解決策やアイデアを探し、ここに投稿する前に多くのことを試しましたが、何もうまくいかないようです。キャンバスの描画関数を使用すると、onTap 関数で情報通知を表示できなくなります。描画されたビットマップも、ズーム中に縮尺と品質が失われます。RelativeLayout を拡張してイメージビューで非表示のレイヤーを実行するカスタム クラスを作成しようとしましたが、正確な位置にマーカーを配置し、カスタム RelativeLayout を簡単にする方法がわかりません。ビットマップと同じサイズの疑似透明キャンバスを配置してスケーリングを機能させ、マーカーを絶対位置に配置できるようにしようとしましたが、うまくいきませんでした。さらに、カスタム RelativeLayout クラスで onTouch イベントを使用すると、下位の imageview クラスで onTouch イベントを使用できませんでした。
私が望むようにメカニズムを実装するのに役立つ解決策を思い付くことができないようです. 助けていただければ幸いです。