有关高德地图自定义mark加载网络图片-心德-干货,

最近项目需要用到高德地图,因为涉及到云图,集成的时候发现不少坑。这些坑基本上网上都有教程,或类似已经踩过的坑。

但是高德自定义图标的时候只提供了。。

今天就来说说,一些度娘比较少的给mark加载网络上的图片。

思路是这样的:

首先,加载网络嘛,肯定要考虑用高德提供的 frombitmap方法喽。

可是bitmap也没有直接就可以加载网络图片的方法。只好另想一些比较歪门邪路的方法了。。。嘿嘿。。。

我想很多人都应该想到了,那就是借助布局 放一个imageview 上去,然后把布局文件转化成一张图片,放到mark的icon里就ok啦。

这样。我们就可以在imageview加载图片的时候做手脚,(●'◡'●)。。

首先请大家观赏下 布局文件的代码:

其实就是一个imageview.

接下来再观赏一下 加载网络图标的核心代码:

datasBean.getContent() 就是网络图片的url.

markerOption.icon(BitmapDescriptorFactory.fromBitmap(setGeniusIcon(datasBean.getContent())));
//此段代码用的是imageloader加载图片到view 上
//options参数是imageloader提供的

public Bitmap setGeniusIcon(String url) {
    Bitmap bitmap = null;
    View view = View.inflate(this, R.layout.pokemon_genius_icon, null);
    imageView imageView = (CircleImageView) view.findViewById(R.id.pokemon_image_icon);
    if (options != null) {
        ImageLoader.getInstance().displayImage(url, imageView, options);
    }
    bitmap = convertViewToBitmap(view);
    return bitmap;
}
//view转化为图片的方法,网上类似的方法有很多
public static Bitmap convertViewToBitmap(View view) {
    view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
    view.buildDrawingCache();
    Bitmap bitmap = view.getDrawingCache();
    return bitmap;
}


好啦。到此就是所有的核心代码啦。小伙伴们,可以在布局里面自定义任何自己想用的布局哦。这样就可以实现更好的自定义效果哦

新人新帖。忙里偷闲写一下。如果觉得还不错,赞一下呗!



评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值