2011-11-11 20 views
0

私はpdfドキュメントを読むことができるアプリケーションに取り組んでおり、pdfページでズームとパンを実装しようとしています。Androidの同じビューでスクロール、フリング、タップ、ズーム、パンを調整する

ページはビットマップとして読み込まれ、ImageViewに表示されます。スクロール可能な下部のカスタムナビゲーションバーを使用してドキュメント内のページをナビゲートするなどの他の機能も既に実装されています。

また、ユーザーがページをタップして次のタップで非表示になったときに下のバーが表示され、羽ばたくときにユーザーはドキュメントの次/前のページに移動できるはずです。こうしたスクロール、タップや情事など

すべての機能は、読者の活動にOnGestureListenerを実装することで処理され、私はページを含むImageViewに設定されているOnTouchListener実装にズームやパンを行うにしようとしています。

コードは機能しているように見えますが、他のイベント、特にスクロールの一部が干渉しているため、速度が遅くなっているようです。 OnGestureListeneronFlingonTapUponScrollのGestureDetectorの処理に使用されているので、すべてを両立について移動する良い方法がある場合

私の質問は、私は、ズーム/パンを追加するための良い方法を見つけることができませんこれによってサポートされているメソッドの1つでコード化します。

誰かが1つのビューでこれらすべてのイベントを処理した経験がある場合、またはこれに関するいくつかの良い提案/チュートリアルがあれば、私は非常に感謝します。

+0

おそらくImageViewの代わりにCanvasオブジェクトを試してみるべきでしょうか? – Dororo

+0

実際には、イベントやコンポーネントをよりうまく編成する方法が必要ですが、私はこれで初めてですし、いくつかの提案を聞きたいと思います。 Canvasの提案をありがとう。 – r1k0

答えて

1

私はスクロールのような他の出来事が何を意味するのかよく分かりません。

Canvasを選択した場合、スクロールすることなく、onTouchを使用してズームとパンを実行できます。スクロールの場合はTouch and drag image in android、ズームの場合はhttp://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847に完全な実装コードがあります。

それはもっぱらImageViewの上に塗布され、高度なインタラクティブ機能を確認するために、一般的に一般的ではないのですが、それは人々が(マルチタッチやAdding Fling Gesture to an image view - Androidのサポートを含むズーム例についてHow can I get zoom functionality for images?を参照)、それを行っていないという意味ではありません。

どのような方法で行っても、onTouch機能にはGestureDetectorが必要です。完全なジェスチャーサポート+ズーム/パンを得るために、私がリンクしたチュートリアルのセクションを一緒にカットしてスプライスすることができます。しかし、もし私がそれをやっていたのであれば、CanvasCanvasはより良いパフォーマンスが得られるので)などのコアを使用してください。DOWN MOVE UPなどのコアを使用して制御したり、怠惰な感じがある場合はGestureDetector抜け出す。

+0

あなたの提案をありがとう、私は一緒に何かを置くことができるかどうかを確認するために述べたチュートリアルを見ていきます。一方、私が行ったことは、ScaleGestureDetectorと一緒にGestureDetectorを使ってコードを動作させることです。今のところ、スクロールはズームを妨げているようには見えませんが、パンを正しく動作させるには、いくつかのコードを追加する必要があります。 – r1k0

関連する問題