0

地図で構成されたガイダンスアプリケーションを作成しました。このマップは、データベースのデータを使用して動的に描画されます。[長方形の座標]マップを描画するために、Viewクラスを使用し、Ondrawメソッドをオーバーライドしました。

問題は、ズームイン機能を実装する方法が見つからないことです。OnLongPressメソッドとOnTouchEventメソッドを処理するためにGestureDetectorクラスをすでに使用しました。ピンチツーズーム機能について考えていましたが、その方法がわかりません。

いくつかの素晴らしいアイデアを楽しみにしています。ありがとうございました!

クラスは拡張します

  • 意見
  • GesturDetector
4

1 に答える 1

0

この動的マップをどのように描画しているかについて、もう少し詳しく教えてください。今のところ、私は仮定を立ててそれを実行します。キャンバスに図形を描画している場合は、キャンバスをビットマップに向けて描画できます。

Bitmap myDynamicMapBitmap = new Bitmap(MAP_WIDTH, MAP_HEIGHT, Bitmap.Config.ARGB_8888);
mapCanvas.setBitmap(myDynamicMapBitmap);
// Draw your map on the canvas here

マップのビットマップ表現ができたので、このオープンソースプロジェクトを利用できます。これは、基本的に、ユーザーが画像をパンおよびズームできる組み込みのAndroidフォトギャラリーアプリを応用したものです。

GitHubのImageViewZoom

私は以前にそのプロジェクトをアプリに使用しましたが、それは本当にうまく機能します。目的の動作を実現するために、いくつかの調整が必要になる場合があります(たとえば、必要とは言わなかったため、パンを無効にします)。

次に、あなたが本当にしなければならないのは:

imageViewZoomInstance.setImageBitmap(myDynamicMapBitmap);

このビューには、組み込みのピンチズームが含まれています。作成した現在のビューとマージすることをお勧めします。

于 2012-11-08T18:46:38.333 に答える