Александр Горбач


программирование, админство

Как сделать свое окошко маркера для гуглокарт на андроид-устройстве

без комментариев

Стандартный снипет маркера на виджете MapView довольно удобен для небольших надписей. Однако же, если хочется сделать,к примеру, многострочный текст или же использовать какой-то дополнительный функционал на самом окошке снипета, то нам придется реализовывать функционал своими руками.

Нам нужен класс, который реализует интерфейс

implements GoogleMap.InfoWindowAdapter

И в нем мы определяем два метода getInfoWindow и getInfoContent. Первый определяет внешний вид всего окна, но нам заморачиваться с прорисовкой тенюшек, указателей и прочего совсем ни к чему, поэтому мы вернем в этом методе null

Override
public View getInfoWindow(Marker marker) {
  return null;
}

А вот содержимое мы изменим. Загрузим данный из Layout-а и нарисуем свое окошко

    @Override
    public View getInfoContents(Marker marker) {

        LayoutInflater inflater = LayoutInflater.from(this);
        View page = inflater.inflate(R.layout.map_description, null);
        TextView title = (TextView)page.findViewById(R.id.map_label_title);
        TextView description = (TextView)page.findViewById(R.id.map_label_description);

        title.setText(marker.getTitle());
        description.setText(marker.getSnippet());
        return page;
    }

И файл map_description.xml из папки layout





    
        
        

    


И установим для нашего маркера этот класс-обработчик вызовом метода

GoogleMap map = mMapView.getMap();
if (map != null) {
  map.setInfoWindowAdapter(this);
}

Как создать создать Google Map View и использовать его в своем приложении подробно описано в предыдущей статье.

Автор Sash(k)a

Апрель 24th, 2014 at 3:18 пп

Опубликовано в Без рубрики

Тэги ,

Оставьте комментарий

Яндекс.Метрика