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

来源:互联网 发布:中戏和北影知乎 编辑:程序博客网 时间:2024/05/21 08:00

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

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

今天就来说说,一些度娘比较少的给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;}


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

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



1 0
原创粉丝点击