Нарисуйте всегда центрированное наложение на MapView в Android

Я хотел бы нарисовать всегда центрированное наложение изображения в MapView на Android, например, прицельную сетку.

Я собираюсь подойти к нему с помощью onTouchEvent Overlay и MotionEvent.Move для перемещения местоположения наложения.

Есть ли лучший способ сделать это?


person kaizenx    schedule 05.09.2011    source источник


Ответы (1)


Вы должны иметь возможность сделать это с помощью RelativeLayout, который содержит MapView и ImageView для вашего центрированного изображения. Вот пример XML:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <com.google.android.maps.MapView android:id="@+id/google_maps"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:apiKey="@string/maps_key"/>
    <ImageView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_centerInParent="true"
               android:src="@drawable/mapcenter"/>
</RelativeLayout>

Это центрирует ваше изображение и сокращает любую обработку, которая в противном случае потребовалась бы для центрирования / удержания изображения в центре. Конечно, есть и другие способы сделать это с помощью OverlayItem, дайте мне знать, если подход XML не работает, и я опубликую пример наложения.

person hooked82    schedule 05.09.2011
comment
Спасибо, я проверю это, а затем я могу передать getcenter обратно в ImageView, чтобы изображение знало, где я на самом деле центрирована, и верну его назад, когда я вернусь домой. - person kaizenx; 05.09.2011
comment
kaizenx, если вы хотите получить центральную точку карты, вам придется использовать метод mapView.getMapCenter (). - person Tute; 02.09.2012