У меня есть google maps v2 в моем приложении Android и некоторые маркеры на нем. Когда пользователь нажимает один из этих маркеров, появляется всплывающее название. Как я могу показывать эти заголовки всегда без щелчка пользователя?
Google android maps api v2 Показать название маркера Всегда
Ответ 1
Просто позвоните Marker.showInfoWindow();
. См. https://developers.google.com/maps/documentation/android/marker#info_windows и https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/Marker#showInfoWindow()
Ответ 2
Что-то вроде этого:
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude, longitude))
.title("Your position")).showInfoWindow();
Ответ 3
Вы можете сделать это:
Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text"));
marker.showInfoWindow();
Ответ 4
Для отображения названий маркеров на карте вокруг маркеров ни одно из решений, которые я нашел в Интернете, не сработало для меня, поэтому я закатал рукава и создал эту библиотеку, которая решает эту проблему для меня, надеюсь, она поможет и другим:
https://github.com/androidseb/android-google-maps-floating-marker-titles
Вот предварительный просмотр того, как это работает:
Ответ 5
Я не очень хорош в некоторой реализации, но вот мой код:
public BitmapDescriptor getBitmapFromView(String title) {
View view = LayoutInflater.from(activity.getApplicationContext()).inflate(R.layout.marker_tooltip, null);
((TextView) view.findViewById(R.id.tooltips_title)).setText(title);
//Get the dimensions of the view. In my case they are in a dimen file
int width = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_width);
int height = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_height);
int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);
view.measure(measuredWidth, measuredHeight);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return BitmapDescriptorFactory.fromBitmap(bitmap);
}
...
marker.setIcon(getBitmapFromView(marker.getTitle()));
...
Я реализовал это во фрагменте приложения карты с некоторыми вариациями. Например, с настраиваемым информационным окном и некоторыми событиями на карте, но его реализация требовала одновременного отображения всех заголовков маркера. Дайте мне знать, было ли это полезно для вас
переменная ACTIVITY переменной Activity.getResources(). getDimensionPixelSize (R.dimen.tooltips_width) является свойством фрагмента.
Ответ 6
Может быть, я немного опоздал, чтобы ответить на этот вопрос, но код ниже работает для меня://добавить реализацию этой библиотеки 'com.google.maps.android:android-maps-utils:0.5'
//затем используем строки кода ниже
public void makersMaker(GoogleMap googleMap){
IconGenerator iconFactory = new IconGenerator(this);
Marker marker1 = googleMap.addMarker(new MarkerOptions().position(newLatLng(-1.3177336,36.8251902));
marker1.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 1")));
Marker marker2 = googleMap.addMarker(new MarkerOptions().position(new LatLng(-1.2857399,36.8214088)));
marker2.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 2")));
}