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

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

1、Marker的xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/item_map"
        android:layout_width="@dimen/dp_38"
        android:layout_height="@dimen/dp_38"
        android:scaleType="fitXY" />

</LinearLayout>

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

public static void loadListener(Context context, Object object, ImageView imageView, RequestListener<Bitmap> 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<Bitmap> {

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

            override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target<Bitmap>?, 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
            }
        })
    }

 

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值