Android: надписи на карте - PullRequest
       21

Android: надписи на карте

3 голосов
/ 16 марта 2010

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

Я настроил прослушиватель onTap и плавающий TextView для хранения имени местоположения. Мне все еще нужно настроить его так, чтобы он перерисовывал метку, когда пользователь перемещает карту и т. Д.

В любом случае, мне интересно, изобретаю ли я здесь колесо заново. Есть ли встроенный метод, о котором я не знаю? Я думаю, что большинство реализаций MapView имеют метки.

Для справки, моя реализация пока:

в карте xml:

<LinearLayout android:id="@+id/mapBubbleWrap"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true">
    <TextView android:id="@+id/mapBubble" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:visibility="gone" 
        android:background="#ffffff" 
        android:textColor="#ff0000"/>
</LinearLayout>

в моем расширенном оверлее Itemized:

public boolean onTap(int index) {

    this.setFocus( mOverlays.get(index) );      
    return true;
}

в моей Активности на Фокусе:

public void onFocusChanged( ItemizedOverlay overlay, OverlayItem item ) {
    if( item != null) {
        mapBubble.setText(item.getTitle());
        Point newPoint = mapView.getProjection().toPixels(item.getPoint(), null);
        mapBubbleWrap.setPadding(newPoint.x, newPoint.y-10, 0, 0);
        mapBubble.setVisibility(View.VISIBLE);
    }
}

1 Ответ

3 голосов
/ 16 марта 2010

Я думаю, что большинство реализации MapView имеют этикетки.

Возможно, но в надстройке Google Map нет ничего, что поддерживало бы их, кроме того, что вы делаете. Хотя я не совсем понимаю, о чем идет речь. Если мне нужна всплывающая панель, когда пользователь нажимает, я просто отображаю всплывающую панель, когда пользователь нажимает - см. этот проект , например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...