android - 地图移动时自定义集群图标更改
问题描述
我以这种方式更改了默认群集图标
internal class MarkerClusterRenderer(private val context: Context?, map: GoogleMap?, clusterManager: ClusterManager<PointOfInterest>?) :
DefaultClusterRenderer<PointOfInterest>(context, map, clusterManager) {
private val mClusterIconGenerator = IconGenerator(context)
override fun onBeforeClusterItemRendered(item: PointOfInterest, markerOptions: MarkerOptions) {
markerOptions.icon(BitmapDescriptorFactory.fromResource(getMarkerResource(item)))
}
override fun onBeforeClusterRendered(cluster: Cluster<PointOfInterest>, markerOptions: MarkerOptions) {
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_cluster))
}
但是当我移动地图时,我设置的图标更改为默认图标。
我该如何解决?
更新
我设法通过覆盖一个方法来解决这个问题。这是最后一堂课
internal class MarkerClusterRenderer(private val context: Context?, map: GoogleMap?, clusterManager: ClusterManager<PointOfInterest>?) :
DefaultClusterRenderer<PointOfInterest>(context, map, clusterManager) {
private val mClusterIconGenerator = IconGenerator(context)
val clusterIcon = ResourcesCompat.getDrawable(context!!.resources, R.drawable.ic_cluster,null)!!
override fun onBeforeClusterItemRendered(item: PointOfInterest, markerOptions: MarkerOptions) {
markerOptions.icon(BitmapDescriptorFactory.fromResource(getMarkerResource(item)))
}
override fun onBeforeClusterRendered(cluster: Cluster<PointOfInterest>, markerOptions: MarkerOptions) {
mClusterIconGenerator.setBackground(clusterIcon)
if (cluster.size < 10) {
mClusterIconGenerator.setContentPadding(40, 20, 0, 0)
} else {
mClusterIconGenerator.setContentPadding(30, 20, 0, 0)
}
val icon: Bitmap = mClusterIconGenerator.makeIcon(cluster.size.toString())
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon))
}
override fun getDescriptorForCluster(cluster: Cluster<PointOfInterest>): BitmapDescriptor {
mClusterIconGenerator.setBackground(clusterIcon)
if (cluster.size < 10) {
mClusterIconGenerator.setContentPadding(40, 20, 0, 0)
} else {
mClusterIconGenerator.setContentPadding(30, 20, 0, 0)
}
val icon: Bitmap = mClusterIconGenerator.makeIcon(cluster.size.toString())
return BitmapDescriptorFactory.fromBitmap(icon)
}
解决方案
推荐阅读
- javascript - 如何将字符串数组转换为在Javascript中浮动
- python - MYSQLAlchemy/Flask 无法识别迁移
- jspdf - TypeError: 单元格未定义[了解更多] jspdf.plugin.autotable.js:690:17
- java - 您的 SQL 语法有错误;在第 1 行的 'Type='1'' 附近 - 我无法编写正确的 SQL 查询
- apache-spark - Spark 查找匹配字符串的出现
- php - 如何将数据库内容显示为 html 表格?
- java - 如何检查 String[] 是否包含我的元素?
- css - CSS/SCSS 自定义工具提示效果
- javascript - 在 Pell 编辑器中粘贴 html 内容并使用 Striptags nodejs 包进行格式化
- c++ - 使用 Dijkstra 算法的最小生成树