Написать текст в Google Map v2 custom marker – Android

На моей карте у меня есть список маркеров, теперь мне нужно достичь результата, как показано ниже. Введите описание изображения здесь

Т.е. маркер с номером индекса.

Я искал Google, но не получил никакого решения. Пожалуйста, помогите мне получить представление об этом.

Для пользовательского маркера:

  • Вы можете создать custom image и draw номер index number в верхней части этого image
  • Проверьте этот пример для настраиваемого маркера

Для Marker Window :

Вы можете создать собственный xml файл, содержащий ImageView и TextViews :

Что-то вроде customMapView.xml :

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/white_full" android:layout_width="match_parent" android:padding="@dimen/padding_micro" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_gravity="left" android:src="@drawable/ic_launcher" android:textColor="@color/black_full" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:gravity="right" android:id="@+id/name" android:text="test" android:textColor="@color/black_full" android:layout_width="match_parent" android:layout_height="wrap_content" /> <!-- Other TextViews or Whatever you want--> </RelativeLayout> 

После инициализации Markers вы вызываете setInfoWindowAdapter и setInfoWindowAdapter your custom view . Что-то вроде:

  private void customizeMarkerInfoWindow(){ //Setting custom info window mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { //Use default infoWindow frame @Override public View getInfoWindow(Marker marker) { return null; } @Override public View getInfoContents(Marker marker) { // Getting view from the layout file View view = mActivity.getLayoutInflater().inflate(R.layout.customMapView, null); // Getting the position from the marker LatLng latLng = marker.getPosition(); //UI elements ImageView img = (TextView) view.findViewById(R.id.img); TextView coord = (TextView) view.findViewById(R.id.name); mukAdTv.setText(mukAd); //You set the image here depending on how you want to set it, if you are downloading from internet you can use PICASSO for it and set it to img //With picasso Picasso.with(mActivity).load(YOUR_IMAGE_URL).into(img); //From drawables //img.setBackground(yourDrawable); name.setText(latLng.latitude + ", " + latLng.longitude); return view; } }); } 

Делайте все, что захотите, с помощью маркеров Google Map

Я сделал очень гибкий и интересный взломать для достижения любого маркера, который вы хотите.

То, что я делаю,

  1. Создайте файл макета XML и создайте его так, как вы хотите, чтобы ваш маркер появлялся. Например, в вашем случае это будет изображение Green Marker с TextView на нем.

  2. Задайте значения TextViews в соответствии с требованиями.

  3. Преобразуйте файл макета в изображение и получите объект BitmapDescriptor.

  4. Создайте пользовательский маркер, используя только что созданное изображение.

Преимущество такого представления над информационным окном заключается в том, что вы можете одновременно открыть окно для нескольких маркеров. Как и в InfoWindow, вы можете открыть его только для одного маркера за один раз.

Образец кода

Просмотрите мой ответ для справки по коду.