Google Maps自定义集群图标背景偶现渲染故障求助
Google Map自定义集群渲染器偶发异常问题
我在应用中为Google Map实现了自定义集群渲染器,使用自定义Drawable背景,数字文本采用含自定义字体与字号的自定义布局。该功能多数情况下正常,但偶尔集群无法按自定义布局渲染,取而代之的是带半透明背景的白色怪异圆形与默认字体——这类样式并非我配置的。放大再缩小地图后,有时可恢复为自定义Drawable渲染。
相关代码如下:
private val stationMarkers = mutableListOf<StationMarkerSettings>() inner class StationMarkerRender(private val context: Context, map: GoogleMap, clusterManager: ClusterManager<StationMarker>) : DefaultClusterRenderer<StationMarker>(context, map, clusterManager) { private val mClusterIconGenerator = IconGenerator(context) //TextView displaying number - centered private fun makeSquareTextView(context: Context): ViewGroup { return (CustomResources.inflateLayout( LayoutInflater.from(context), R.layout.station_marker_cluster_text, null ) as ViewGroup) } override fun onBeforeClusterRendered( cluster: Cluster<StationMarker>, markerOptions: MarkerOptions ) { super.onBeforeClusterRendered(cluster, markerOptions) mClusterIconGenerator.setBackground(ContextCompat.getDrawable(context, R.drawable.station_pin_cluster)) mClusterIconGenerator.setContentView(makeSquareTextView(context)) val icon = mClusterIconGenerator.makeIcon(java.lang.String.valueOf(cluster.size)) markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon)) } override fun onBeforeClusterItemRendered(item: StationMarker, mo: MarkerOptions) { stationMarkers.add(StationMarkerSettings(item, mo)) mo.icon(bitmapDescriptorFromVector(activity, R.drawable.station_pin_unselected)).anchor(anchorU, 1f) } override fun shouldRenderAsCluster(cluster: Cluster<StationMarker>): Boolean { return cluster.size > 1 } override fun getColor(clusterSize: Int): Int { return ContextCompat.getColor(context, R.color.white) } }
故障效果展示:
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

