如何使用 xml 布局作为聚类标记 Android
how to use xml layout as cluster marker Android
我有一个问题,是否可以通过 android 地图实用程序将具有多个图像视图和文本视图的布局设置为 google 地图上的聚类标记?如何?如果有人提供了一个很好的例子,那就太好了,这是我想做的事情的例子:
谢谢
我不知道是否有比我用了一年的方法更简单的方法如果数据集很大,这种方法会花费很多时间,所以在小数据集上使用它或与其他选项的设计师。
您可以根据需要创建布局,获取此布局的位图,然后将位图作为标记添加到地图,因为添加标记仅获取图像。
*创建位图前需要设置数据
第一步膨胀并为您的布局设置数据
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;
}
祝你好运,这是一个很大的痛苦。
我有一个问题,是否可以通过 android 地图实用程序将具有多个图像视图和文本视图的布局设置为 google 地图上的聚类标记?如何?如果有人提供了一个很好的例子,那就太好了,这是我想做的事情的例子:
谢谢
我不知道是否有比我用了一年的方法更简单的方法如果数据集很大,这种方法会花费很多时间,所以在小数据集上使用它或与其他选项的设计师。
您可以根据需要创建布局,获取此布局的位图,然后将位图作为标记添加到地图,因为添加标记仅获取图像。 *创建位图前需要设置数据
第一步膨胀并为您的布局设置数据
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;
}
祝你好运,这是一个很大的痛苦。