ズーム可能でパン可能なマップ(単なるビットマップ画像)を表示するAndroidアプリケーションを開発しようとしています。これにより、ユーザーはマップ上の特定のポイントをクリックすることもできます。
私はそのようなアプリを実装するための最も効果的な方法を見つけるのに苦労しています。他の多くの方法(Webviews、OpenLayersを含む)を試した後、(少なくともこのサイトによれば)最良の方法は、CanvasでSurfaceViewを使用することのようです。私がこれまでに持っているコードは、インターネット全体で見つけたスニペットからつなぎ合わされているため、クラッシュするだけです。とにかく、私が達成しようとしていることのいくつかのアイデアを与えることを期待して、ここにそれを含めました:
public class Main extends Activity {
private Bitmap bmp;
private SurfaceView surfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView)findViewById(R.id.surface);
bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.testmapbmp);
//decode the bitmap file
Canvas canvas = new Canvas(bmp);
//create a canvas from the bitmap, then display it in surfaceview
surfaceView.draw(canvas);
}
}
これは、アプリケーションに必要な機能を実現するための最良の方法ですか?または、特にマップのクリック可能なセクションを実装するなど、後で問題が発生する可能性がある場合は、より良い方法があります。
以前にこのようなものを作成したことがある人の助けが本当に必要なので、問題についての考えを深めることができますが、助け/ポインター/ヒントをいただければ幸いです。
ありがとう