Я не знаю, если есть более простой способ, чем то, что я использовал это был год, этот метод занимает много времени, если набор данных является большим, поэтому используйте его на небольшом наборе данных или поговорите с дизайнером для других опций.
вы можете создать макет с тем, что вы хотите получить растровое изображение этого макета, это добавить растровое изображение в качестве маркера к карте, так как маркер добавления принимает только изображения.
первый шаг надуть и установить данные в макете
View marker = ((LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(R.layout.marker_layout, null);
второй получить растровое изображение с этой точки зрения
Bitmap bitmap = createDrawableFromView(
getActivity(), marker);
третий добавить растровое изображение в качестве маркера
MarkerOptions mo = new MarkerOptions().position(
new LatLng(lat, lng))
// .title(address)
.snippet(i + "")
.icon(BitmapDescriptorFactory
.fromBitmap(bitmap));
Marker customMarker = googleMap.addMarker(mo);
это как получить растровое изображение
public static Bitmap createDrawableFromView(Context context, View view) {
DisplayMetrics displayMetrics = new DisplayMetrics();
if (context != null) {
((Activity) context).getWindowManager().getDefaultDisplay()
.getMetrics(displayMetrics);
view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
view.layout(0, 0, displayMetrics.widthPixels,
displayMetrics.heightPixels);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(),
view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
return null;
}
goodluck с тем, что было много боли.
спасибо, что я собираюсь дать ему попробовать, этот код предназначен для одного маркера, а не кластера, но я пытаюсь реализовать внутри своих кодов, но еще один вопрос: я должен установить данные перед использованием createDrawableFromView, а также это можно использовать это внутри конструктора onBeforeClusterRendered? – Blacksword
да, вы должны установить все данные, прежде чем создавать растровое изображение , если изображение URL-адреса загрузится сначала, а затем создайте маркер, который я не использовал onBeforeClusterRendered, поэтому я не знаю, попробуйте. –
это сработало для меня спасибо Hala – Blacksword