Я пытаюсь разработать приложение для Android, чтобы отображать масштабируемую карту с возможностью панорамирования (это просто растровое изображение), что также позволяет пользователю нажимать на определенные точки на карта.Отображение растрового изображения на холсте в Surfaceview
Я изо всех сил пытаюсь найти наиболее эффективный способ реализации такого приложения. Попробовав множество других методов (включая Webviews, OpenLayers), лучший способ (по крайней мере, по данным этого сайта), похоже, использует SurfaceView с Canvas. Код, который я до сих пор, собран из фрагментов, которые я нашел по всему Интернету, поэтому он просто падает. Я включил его здесь в любом случае в надежде, что это дает некоторое представление о том, что я пытаюсь достичь:
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);
}
}
Это лучший способ для достижения функциональности я хочу для моего приложения? Или есть лучший способ, особенно если я могу столкнуться с проблемами позже, например, с помощью интерактивных разделов карты.
Мне действительно нужна помощь от кого-то, кто создал что-то подобное раньше, поэтому я могу получить мой повод о проблеме, но я очень ценю любую помощь/указатели/советы вообще!
Thanks
Спасибо! Это очень помогает! – logicalfox