-1

私は学校のインタラクティブ マップを作成する研究段階にあり、各部屋にタグが付けられたマップがあり、ユーザーが部屋をクリックすると、教師、クラス情報、会議時間に関する情報が表示されます。マップ自体は、制限付きでズームインおよびズームアウトし、移動する必要があります。

マップの最終的な外観は、ここの中央の図の線に沿ったものになります。

マップを作成する方法はさまざまです。

キャンバスの描画

onDraw()マップは、各部屋を表す長方形を描く方法を使用して作成できます。短所には、描画される長方形の数と、バッテリー消費の可能性が含まれます。また、マップ全体を移動可能にする方法もわからないため、各長方形が一緒に移動します。実際には、すべての長方形を 1 つの画像に描画し、画像を移動します。

OpenGL

上記と同じ方法ですが、バッテリー消費の一部を排除するために OpenGL で実行します。同じデメリットがあります。

私が直面している主な問題は、最も効率的な方法を見つけて使用することと、ズームとパン機能を実装できることです。

他に可能な解決策は何ですか?

4

1 に答える 1

1

提案する別の代替手段はありませんが、アプリにほぼ同じ機能を実装しているため、OpenGL ( JOGL経由) を使用することをお勧めします。複数のタイルから 1 つのマップをレンダリングする場合、1 つのタイルを描画し、glTranslate を隣接するタイルがある場所に移動して、次のタイルを描画します。

マップのスクロールは、タイルの描画を開始する前に適切なオフセットに glTranslate を配置することで実装されます。ズームは、glTranslate の後に適切なレートで glScale を配置することによって実装されます。

もちろん、同等のキャンバス描画コマンドがありますが、OpenGL を使用してそのような機能を実装する方が少し簡単であることが常にわかりました。

于 2012-10-22T15:06:15.967 に答える