有關高德地圖自定義mark載入網路圖片-心德-乾貨,
阿新 • • 發佈:2019-02-10
最近專案需要用到高德地圖,因為涉及到雲圖,整合的時候發現不少坑。這些坑基本上網上都有教程,或類似已經踩過的坑。
但是高德自定義圖示的時候只提供了。。
今天就來說說,一些度娘比較少的給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); returnbitmap; } //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; }
好啦。到此就是所有的核心程式碼啦。小夥伴們,可以在佈局裡面自定義任何自己想用的佈局哦。這樣就可以實現更好的自定義效果哦
新人新帖。忙裡偷閒寫一下。如果覺得還不錯,贊一下唄!