超圖 android 開發(fā)添加點(自定義點樣式和部分功能)

超圖使用一段時間了, 所寫皆是個人所感,所學,歡迎指點

最近因為項目上的一些規(guī)劃改動,開始接觸到了超圖,首先我申明,自己真的是一個小白,才開始使用

但是,使用過程中發(fā)現(xiàn)超圖相關(guān)資源的查詢很少,很多時候沒辦法只能去官網(wǎng)提問,那個速度又太慢了,

言歸正傳,今天寫一個關(guān)于超圖中添加點和給點實現(xiàn)一些基礎(chǔ)功能


能看到這里的人,超圖的基本引入這些我就不贅述了,


直接進入正題:

1: 如何在超圖上添加點,


核心代碼:

CallOut callOutView = getCallOutView(dto);

mapview2.addCallout(callOutView);


getCallOutView()方法源碼,說明一下,因為我要給我的這個添加點動態(tài)設(shè)置對應(yīng)的圖標和點擊事件,所以我才把我添加點的這個實體對象直接傳過去,你可以選擇只傳遞坐標過去

方法源碼:

public CallOutgetCallOutView(DzdBean featureBean) {

//這里是自定義的顯示 我就一個名字和一個圖標,稍后會貼圖顯示

CalloutBinding binding = CalloutBinding.inflate(LayoutInflater.from(context));

? ? CallOut callOut =new CallOut(context);

? ? callOut.setContentView(binding.getRoot());

? ? callOut.setCustomize(true);

? ? callOut.setLocation(featureBean.getX(), featureBean.getY());

? ? String dzlxmc = featureBean.getDzlxmc();

? ? if (dzlxmc !=null) {

String spells = ChineseCharacterHelper.getSpells(dzlxmc);

? ? ? ? // 獲取圖標資源的ID? 有一個叫xxxx? 單獨處理? 這里是我按照資源的命名,取對應(yīng)名字的資源文件, 你可以直接使用 R.mipmap.xxx

? ? ? ? int iconResourceId = getResources().getIdentifier(spells.toLowerCase().equals("bhkj") ?

"bh" : spells.toLowerCase(), "mipmap", context.getPackageName());

? ? ? ? binding.btnSelected.setImageResource(iconResourceId);

? ? ? ? binding.textAddr.setTag(featureBean);

? ? ? ? callOut.setTag(R.id.text_addr, "" + featureBean.getDzmc());

? ? ? ? binding.btnSelected.setTag(featureBean);

? ? ? ? binding.btnSelected.setTag(R.id.text_addr, "" + featureBean.getDzmc());

? ? ? ? callOut.setOnClickListener(view -> {

if (textAddrShowed !=null) {

textAddrShowed.setVisibility(GONE);

? ? ? ? ? ? ? ? List callouts =mapview2.getCallouts();

? ? ? ? ? ? ? ? for (CallOut callout1 : callouts) {

callout1.setSelected(false);

? ? ? ? ? ? ? ? ? ? callout1.clearAnimation();

? ? ? ? ? ? ? ? }

}

//顯示當前標題

? ? ? ? ? ? textAddrShowed =binding.textAddr;

? ? ? ? ? ? textAddrShowed.setVisibility(VISIBLE);

? ? ? ? ? ? textAddrShowed.setText(view.getTag(R.id.text_addr).toString());

? ? ? ? });

? ? ? ? binding.btnSelected.setOnClickListener(view -> {

Object tag = view.getTag();

? ? ? ? ? ? if (taginstanceof DzdBean) {

DzdBean featureBean1 = (DzdBean) tag;

? ? ? ? ? ? ? ? Point2D point2D =new Point2D(featureBean1.getX(), featureBean1.getY());

? ? ? ? ? ? ? ? mapControl.panTo(point2D, 200);

? ? ? ? ? ? }

if (textAddrShowed !=null) {

textAddrShowed.setVisibility(GONE);

? ? ? ? ? ? }

//顯示當前標題

? ? ? ? ? ? textAddrShowed =binding.textAddr;

? ? ? ? ? ? textAddrShowed.setVisibility(VISIBLE);

? ? ? ? ? ? textAddrShowed.setText(view.getTag(R.id.text_addr).toString());

? ? ? ? ? ? selectCallout(callOut);

? ? ? ? ? ? //設(shè)置動畫

? ? ? ? ? ? selectCallout(callOut);

? ? ? ? });

? ? }

binding.textAddr.setOnClickListener(view -> {

Object object = view.getTag();

? ? ? ? if (objectinstanceof DzdBean) {

? ? ? ? ? ? DzdBean dzdBean = (DzdBean) object;

? ? ? ? ? ? Long indexId = dzdBean.getId();

? ? ? ? ? ? //跳轉(zhuǎn)到我具體詳情界面,不做更深的展示.

? ? ? ? ? ? goToDetailsById(indexId, dzdBean.getDzmc(), dzdBean.getDzlxid(), dzdBean.getDzlxmc());

? ? ? ? }?

});

? ? return callOut;

}


選中和設(shè)置動畫,我就是想給點擊的點有一個比較不一樣的效果,不僅僅單純的就展示一個彈出,源碼如下

public void selectCallout(CallOut callOut) {

List callouts =mapview2.getCallouts();

? ? for (CallOut callout1 : callouts) {

callout1.setSelected(false);

? ? ? ? callout1.clearAnimation();

? ? }

callOut.setSelected(true);

? ? setAnimation(callOut);

}

private void setAnimation(CallOut marker) {

// 定義組合動畫 -- 我這里就是一個單純的閃爍動畫,你可以按照你的想法自定義動畫

? ? android.view.animation.ScaleAnimation scaleAnimation =new android.view.animation.ScaleAnimation(1.0f, 1.0f, 0.9f, 1.0f);

? ? scaleAnimation.setDuration(1000);

? ? scaleAnimation.setRepeatCount(100000);

? ? marker.setAnimation(scaleAnimation);

}



就那么簡單,總結(jié)一下就是給superMap 添加一個callout的組件? 這里可以自定義樣式,并且在自定義的樣式完成自己想要的一些功能.沒那么多廢話,都是直接上的干貨.下一篇準備寫添加線


對了 還是貼幾張效果圖:

展示效果:

點擊的選中效果(很明顯我這個動畫比較粗糙)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子禀崖,更是在濱河造成了極大的恐慌稽物,老刑警劉巖巢价,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倒得,死亡現(xiàn)場離奇詭異农渊,居然都是意外死亡患蹂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門砸紊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來传于,“玉大人,你說我怎么就攤上這事醉顽「窳耍” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵徽鼎,是天一觀的道長。 經(jīng)常有香客問我弹惦,道長否淤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任棠隐,我火速辦了婚禮石抡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘助泽。我一直安慰自己啰扛,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布嗡贺。 她就那樣靜靜地躺著隐解,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诫睬。 梳的紋絲不亂的頭發(fā)上煞茫,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音,去河邊找鬼续徽。 笑死蚓曼,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的钦扭。 我是一名探鬼主播纫版,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼客情!你這毒婦竟也來了其弊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤裹匙,失蹤者是張志新(化名)和其女友劉穎瑞凑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體概页,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡籽御,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惰匙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片技掏。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖项鬼,靈堂內(nèi)的尸體忽然破棺而出哑梳,到底是詐尸還是另有隱情,我是刑警寧澤绘盟,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布鸠真,位于F島的核電站,受9級特大地震影響龄毡,放射性物質(zhì)發(fā)生泄漏吠卷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一沦零、第九天 我趴在偏房一處隱蔽的房頂上張望祭隔。 院中可真熱鬧,春花似錦路操、人聲如沸疾渴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搞坝。三九已至,卻和暖如春魁袜,著一層夾襖步出監(jiān)牢的瞬間瞄沙,已是汗流浹背己沛。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留距境,地道東北人申尼。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像垫桂,于是被迫代替她去往敵國和親师幕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容