婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于高德地圖標(biāo)注實現(xiàn)完全自定義Marker

基于高德地圖標(biāo)注實現(xiàn)完全自定義Marker

熱門標(biāo)簽:百融智能外呼系統(tǒng)說明書 山東銀行智能外呼系統(tǒng)價格 自動撥號座機和外呼系統(tǒng) 騰訊地圖標(biāo)注補貼店 遼寧保險智能外呼系統(tǒng)價格 離線地圖標(biāo)注下載 外呼系統(tǒng)值不值得代理 咸寧電銷機器人收費 語音機器人對電銷工作者有用嗎
1746 做地圖社交類APP開發(fā)的都知道,一般情況下,為了整體的美觀和用戶體驗度,我們需要定制化Marker的樣式。本文中實現(xiàn)的方式都是基于高德地圖標(biāo)注的,百度地圖也類似,大家可以照葫蘆畫瓢,廢話不多說,先來看看最終效果:
實現(xiàn)思路:
先來看看高德官方提供的設(shè)置Marker圖標(biāo)的方法: 我們可以看到setIcon()方法,里面的參數(shù)BitmapDescriptor就是我們最終需要的東西。那么到底該如何得到這個BitmapDescriptor對象呢,其實很簡單,該對象可以通過BitmapDescriptorFactory工廠類獲取,BitmapDescriptorFactory提供了以下方法來得到BitmapDescriptor對象:
/** * 1.通過資源id獲取 */public static BitmapDescriptor fromResource(int var0) { ......}/** * 2.通過自定義的view獲取 */ public static BitmapDescriptor fromView(View var0) { ...... }/** * 3.通過具體路徑資源獲取 */ public static BitmapDescriptor fromPath(String var0) { ......}/** * 4.通過具體Assets資源獲取 */ public static BitmapDescriptor fromAsset(String var0) { ...... }/** * 5.通過具體文件獲取 */public static BitmapDescriptor fromFile(String var0) { ......}/** * 6.通過bitmap獲取 */ public static BitmapDescriptor fromBitmap(Bitmap var0) { ......}123456789101112131415161718192021222324252627282930313233343536373839404142
從以上官方提供的方法可以看到,得到BitmapDescriptor對象的方式有多種,我們可以根據(jù)自己需要自行選擇。但是,為了應(yīng)對頻繁的需求變化,我們肯定要選擇更為動態(tài),靈活的方式來應(yīng)付我們的需求變化,我們就可以選擇fromView()和fromBitmap()兩種方式來得到BitmapDescriptor對象了。這里選用fromBitmap()方式來得到BitmapDescriptor對象吧,因為采用fromView()方法獲取后有個巨坑,這個后面再說。
如果我們要根據(jù)需求自定義Marker,當(dāng)然是希望能夠讓它可大可小,可動可靜了,那就非view莫屬了。只要我們可以自定義view布局,然后轉(zhuǎn)化成bitmap不就OK了嗎,好,說干就干,我們以自定義Makrer樣式并加載網(wǎng)絡(luò)圖片為例,開干!
定制化Marker布局,加載網(wǎng)絡(luò)圖片:
我們就以實現(xiàn)以下Marker的樣式為例:
這個樣式比較簡單,只要一個CircleImageView外面套一個固定的容器就可以了,直接看布局代碼:
marker_bg.xml:
123456789101112131415161718192021
下面看一下代碼中如何使用:
/** * by moos on 2017/11/13 * func:定制化marker的圖標(biāo) * @return */ private void customizeMarkerIcon(String url, final OnMarkerIconLoadListener listener){ final View markerView = LayoutInflater.from(this).inflate(R.layout.marker_bg,null); final CircleImageView icon = (CircleImageView) markerView.findViewById(R.id.marker_item_icon); Glide.with(this) .load(url+"!/format/webp") .asBitmap() .thumbnail(0.2f) .diskCacheStrategy(DiskCacheStrategy.NONE) .centerCrop() .into(new SimpleTargetBitmap>(){ @Override public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) { //待圖片加載完畢后再設(shè)置bitmapDes icon.setImageBitmap(bitmap); bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(convertViewToBitmap(markerView)); listener.markerIconLoadingFinished(markerView); } }); }....../** * by moos on 2017/11/15 * func:自定義監(jiān)聽接口,用來marker的icon加載完畢后回調(diào)添加marker屬性 */ public interface OnMarkerIconLoadListener{ void markerIconLoadingFinished(View view); }12345678910111213141516171819202122232425262728293031323334353637383940
這部分代碼也不是很難,我就簡單講講思路。首先加載布局后,拿到里面的控件CircleImageView,并使用常用的Glide圖片加載框架來加載網(wǎng)絡(luò)圖片。可能會有人問,為什么關(guān)閉Glide的緩存設(shè)置呢?關(guān)注到這點的人還是比較細(xì)心的,我們使用glide加載大量marker布局的時候,如果社會了緩存選項,那么就可能會出現(xiàn)相同圖片只顯示一張的狀況,這個如果不信的話可以自行實驗。下面來說說另一個問題,也就是剛剛我們?yōu)槭裁催x擇fromBitmap()而不是fromView()方法,因為之前用fromView()時發(fā)現(xiàn)添加的第一個marker并不會加載出圖片,而只是顯示默認(rèn)的占位圖。即使通過在Glide加載圖片的回調(diào)方法onResourceReady()設(shè)置也依然無效,這個問題大家不信邪也可以試試看看,這就是最終為什么選擇fromBitmap()方法的原因。這里還使用了自定義的接口來傳入markerView,方便后面的二次開發(fā),然后在回調(diào)方法markerIconLoadingFinished()方法中設(shè)置marker的圖標(biāo)。
將view轉(zhuǎn)化為bitmap對象:
/** * by mos on 2017.11.13 * func:view轉(zhuǎn)bitmap */ 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; }1234567891011121314151617
網(wǎng)上相關(guān)方法很多,這里就不介紹了,有興趣可以去百度一下。
批量添加自定義的Marker到地圖上:
先來看看代碼:
/** * by moos on 2017/11/15 * func:添加marker到地圖上顯示 */ BitmapDescriptor bitmapDescriptor ; private void addMarker(final ImageNearBean.DataBean.ExhibitionListBean bean) { double lat; double lon; lat = bean.getLatitude(); lon = bean.getLongitude(); LatLng latLng = new LatLng(lat, lon, false); loge("添加maker前的類型為==="+bean.getUserType()); String url = bean.getUserLogo(); final MarkerOptions markerOptions = new MarkerOptions(); markerOptions.setFlat(true); markerOptions.anchor(0.5f, 0.5f); markerOptions.position(new LatLng(lat, lon)); customizeMarkerIcon(url, bean.getTeamName(),new OnMarkerIconLoadListener() { @Override public void markerIconLoadingFinished(View view) { //bitmapDescriptor = BitmapDescriptorFactory.fromView(view); markerOptions.icon(bitmapDescriptor); Marker marker; marker = mAMap.addMarker(markerOptions); //marker.setObject(cluster); } }); } /** * by moos on 2017/11/15 * func:批量添加marker到地圖上 */ private void addMarkersToMap(){ runOnUiThread(new Runnable() { @Override public void run() { for(int i = 0;iallBussinessBean.size();i++){ addMarker(allBussinessBean.get(i)); } } }); }12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
既然marker樣式定制完畢,BitmapDescriptor也拿到了,那么下面就簡單了,應(yīng)該就不需要我多說了,只要注意一點,批量添加marker一般比較耗時,盡量放在子線程處理。
到這里,自定義marker就實現(xiàn)了,這應(yīng)該可以適用于多數(shù)情況了,一路看下來,是不是也挺簡單的,只要用心思考研究就好了,而且搞定后有很強的工作動力有木有!

標(biāo)簽:淮北 清遠(yuǎn) 中衛(wèi) 臨夏 嘉峪關(guān) 自貢 綏化 濟寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于高德地圖標(biāo)注實現(xiàn)完全自定義Marker》,本文關(guān)鍵詞  基于,高德,地圖,標(biāo)注,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于高德地圖標(biāo)注實現(xiàn)完全自定義Marker》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于高德地圖標(biāo)注實現(xiàn)完全自定義Marker的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    7777精品伊人久久久大香线蕉经典版下载| 亚洲国产视频a| 欧美精品粉嫩高潮一区二区| 91色综合久久久久婷婷| 高清国产一区二区| 成人永久aaa| www.成人网.com| 成人av在线一区二区三区| 成a人片国产精品| 99精品欧美一区二区三区小说 | 久久你懂得1024| 久久久国际精品| 久久久久综合网| 国产精品久久免费看| 中文字幕亚洲成人| 亚洲福利电影网| 青青草精品视频| 国产精品69毛片高清亚洲| 懂色av中文字幕一区二区三区| 成人午夜av电影| 欧美午夜一区二区| 欧美一区二区成人| 精品国产乱码久久久久久夜甘婷婷 | 欧美一级片在线看| 精品久久五月天| 国产精品成人一区二区艾草| 亚洲视频1区2区| 午夜精彩视频在线观看不卡| 国产综合成人久久大片91| 大桥未久av一区二区三区中文| 99久久精品99国产精品| 在线免费视频一区二区| 日韩亚洲电影在线| 国产精品美女久久久久久久久| 亚洲精品老司机| 久久99深爱久久99精品| 99在线视频精品| 欧美一级二级在线观看| 欧美激情中文不卡| 日韩激情一二三区| 97se狠狠狠综合亚洲狠狠| 欧美日韩国产综合一区二区| 久久久国产精品不卡| 亚洲精品乱码久久久久久日本蜜臀| 免费精品视频在线| 91黄色免费版| 国产日韩欧美综合一区| 日本中文字幕不卡| 在线观看日韩精品| 国产日韩欧美精品电影三级在线 | 欧美国产激情一区二区三区蜜月| 亚洲一区二区三区中文字幕| 国产美女在线精品| 91精品中文字幕一区二区三区| 中文字幕制服丝袜成人av| 极品少妇一区二区| 69精品人人人人| 亚洲高清免费观看| 色综合久久精品| 国产精品三级av| 国产经典欧美精品| 久久久电影一区二区三区| 日本人妖一区二区| 91精品国产综合久久小美女| 亚洲午夜久久久久久久久久久| 丁香六月久久综合狠狠色| 久久网站最新地址| 激情综合网av| 欧美tickling网站挠脚心| 视频在线在亚洲| 欧美日韩精品一区二区三区蜜桃| 一个色综合av| 欧美伊人精品成人久久综合97| 中文一区在线播放| 成人激情动漫在线观看| 国产精品久久久久影院老司| 成人免费视频播放| 自拍视频在线观看一区二区| 91在线精品一区二区三区| 国产精品三级久久久久三级| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品的网站| 91麻豆福利精品推荐| 依依成人综合视频| 欧美伊人久久大香线蕉综合69| 亚洲国产欧美日韩另类综合| 欧美日韩精品欧美日韩精品 | 亚洲国产欧美在线| 欧美女孩性生活视频| 热久久久久久久| 久久这里都是精品| 成人一区二区三区在线观看 | 欧美日韩国产高清一区二区| 亚洲va欧美va天堂v国产综合| 制服丝袜亚洲网站| 国内精品国产成人国产三级粉色 | 成人午夜精品在线| 亚洲精品视频在线观看网站| 欧美三级在线视频| 精品综合免费视频观看| 国产精品久久国产精麻豆99网站| 色偷偷久久人人79超碰人人澡| 亚洲午夜激情网页| 久久久久久久综合色一本| 色综合色综合色综合色综合色综合 | 欧美精品久久久久久久多人混战 | 精品国精品国产尤物美女| 国产精品99久久久久久久女警| 依依成人综合视频| 欧美精品一区二区三区高清aⅴ| 成人国产亚洲欧美成人综合网| 亚洲bt欧美bt精品| 亚洲国产精品二十页| 欧美浪妇xxxx高跟鞋交| 国产成人在线视频播放| 午夜在线电影亚洲一区| 国产欧美日韩亚州综合| 欧美一区二区三区四区在线观看| 国产成人啪免费观看软件| 视频一区在线播放| 中文字幕在线观看一区| 欧美日韩国产高清一区二区三区| 成人的网站免费观看| 久久精品久久久精品美女| 亚洲精品国产精品乱码不99| 欧美精品一区二区三区蜜臀| 欧美日韩成人一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 秋霞电影网一区二区| 中文av一区二区| 欧美www视频| 欧美疯狂做受xxxx富婆| 99国产精品国产精品久久| 国产精品综合一区二区| 肉色丝袜一区二区| 亚洲国产精品视频| 亚洲欧美另类图片小说| 日本一区二区三区高清不卡| 精品少妇一区二区三区在线视频 | 久久久久久久精| 日韩精品一区二区三区在线| 欧美日本在线观看| 欧美人牲a欧美精品| 欧美在线一二三四区| 91视频www| 在线亚洲+欧美+日本专区| 91视频免费播放| 91丨porny丨首页| 99精品视频在线播放观看| 一本色道a无线码一区v| av日韩在线网站| 色老头久久综合| 在线观看亚洲专区| 欧美亚洲一区二区三区四区| 欧美在线你懂得| 欧美日韩黄色一区二区| 日韩欧美在线观看一区二区三区| 日韩一区二区中文字幕| 日韩精品专区在线影院观看| 精品久久人人做人人爰| 亚洲精品一区二区三区香蕉| 久久久久久久久久久99999| 中文字幕欧美激情一区| 国产精品免费视频网站| 一区二区三区国产精华| 日韩高清在线电影| 韩国女主播成人在线观看| 成人久久久精品乱码一区二区三区| 成人ar影院免费观看视频| 一本一本久久a久久精品综合麻豆| 在线观看网站黄不卡| 欧美久久久久久久久中文字幕| 精品少妇一区二区三区日产乱码 | 蜜臀av亚洲一区中文字幕| 国产一区啦啦啦在线观看| 成人伦理片在线| 欧美午夜宅男影院| 久久影音资源网| 一区二区成人在线观看| 久久99精品久久只有精品| 92国产精品观看| 欧美一区二区三区免费| 国产精品久久综合| 亚洲sss视频在线视频| 国产麻豆日韩欧美久久| 欧美视频一区二区三区在线观看 | 欧美激情自拍偷拍| 亚洲高清免费观看| 国产成人免费在线观看| 欧美日产国产精品| 国产精品美女久久久久久 | 狠狠久久亚洲欧美| 在线看不卡av| 中文字幕va一区二区三区| 亚洲国产精品久久人人爱| 丁香一区二区三区| 制服丝袜在线91| 亚洲黄网站在线观看| 成人性生交大合| 久久综合视频网|