1. 程式人生 > >有關高德地圖自定義mark載入網路圖片-心德-乾貨,

有關高德地圖自定義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;
}


好啦。到此就是所有的核心程式碼啦。小夥伴們,可以在佈局裡面自定義任何自己想用的佈局哦。這樣就可以實現更好的自定義效果哦

新人新帖。忙裡偷閒寫一下。如果覺得還不錯,贊一下唄!