Android 百度地图添加自定义Marker(圆形网络图片)

使用到的Glide依赖 com.github.bumptech.glide:glide:4.11.0

1、Marker的xml布局文件




    

2、Glide加载圆形图片方法(JAVA代码)

public static void loadListener(Context context, Object object, ImageView imageView, RequestListener requestListener) {
        Glide.with(context)
                .asBitmap()
                .load(object)
                .transform(new CenterCrop(), new CircleCrop())
                .addListener(requestListener)
                .into(imageView);
    }

3.地图上加载自定义的Marker

private fun setMarker(latitude: Double, longitude: Double) {
        val view = LayoutInflater.from(this).inflate(
            R.layout.item_map_marker,
            null
        )
        val string =
            "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2289611346,1405352200&fm=26&gp=0.jpg"
        GlideUtils.loadListener(this, string, view.item_map, object : RequestListener {

            override fun onLoadFailed(e: GlideException?, model: Any?, target: Target?, isFirstResource: Boolean): Boolean {
                //图片加载错误执行
                return false
            }

            override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
                //图片加载成功执行
                view.item_map.setImageBitmap(resource)
                //绘制Marker的经纬度
                val point = LatLng(latitude, longitude)
                val bitmap = BitmapDescriptorFactory.fromView(view)
                //创建Marker
                val option = MarkerOptions()
                    .position(point)
                    .icon(bitmap)
                mBaiduMap!!.addOverlay(option)
                return false
            }
        })
    }

 

你可能感兴趣的:(kotlin,android)