高德地圖自定義Marker點選時出現的InfoWindow
1.自定義InfoWindowAdapter:
package com.onetoo.www.onetoo.abapter.home;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.model.Marker;
import com.bumptech.glide.Glide;
import com.onetoo.www.onetoo.R;
import com.onetoo.www.onetoo.bean.home.HomeStore;
import com.onetoo.www.onetoo.utils.StoreInfoUtil;
/**
* Created by longShun on 2016/11/3.
* desc自定義地圖資訊框
*/
public class CustomInfoWindowAdapter implements AMap.InfoWindowAdapter{
private Context context;
public CustomInfoWindowAdapter(Context context) {
this.context = context;
}
@Override
public View getInfoWindow(Marker marker) {
View view = LayoutInflater.from(context).inflate(R.layout.map_info_window, null);
setViewContent(marker,view);
return view;
}
//這個方法根據自己的實體資訊來進行相應控制元件的賦值
private void setViewContent(Marker marker,View view) {
//例項:
HomeStore.DataEntity storeInfo = (HomeStore.DataEntity) marker.getObject();
ImageView ivPic = (ImageView) view.findViewById(R.id.iv_info_store_pic);
Glide.with(context).load(storeInfo.getStore_pic()).centerCrop().into(ivPic);
TextView tvName = (TextView) view.findViewById(R.id.tv_info_store_name);
tvName.setText(storeInfo.getStore_name());
TextView tvType = (TextView) view.findViewById(R.id.tv_info_store_type);
String storeCategory = StoreInfoUtil.getStoreCategory(storeInfo.getFk_category_id());
tvType.setText(storeCategory);
}
//提供了一個給預設資訊視窗定製內容的方法。如果用自定義的佈局,不用管這個方法。
@Override
public View getInfoContents(Marker marker) {
return null;
}
}
2.拿到AMap物件,設定adapter:
AMap aMap = mapView.getMap();
aMap.setInfoWindowAdapter(new CustomInfoWindowAdapter(getActivity()));
3.Activity或則其他地方關鍵程式碼:
MarkerOptions options = new MarkerOptions();
options.title("");//title不設infowindow不顯示
options.position(new LatLng(latitude, longitude)).icon(BitmapDescriptorFactory
.fromBitmap(BitmapFactory
.decodeResource(getResources(), R.drawable.xxx)));
Marker marker = aMap.addMarker(options);
marker.setObject(object);//把相應的物件賦給marker,adapter中通過這個物件給控制元件賦值
aMap.setOnMarkerClickListener(this);
@Override
public boolean onMarkerClick(Marker marker) {
curShowWindowMarker = marker;//儲存當前點選的Marker,以便點選地圖其他地方設定InfoWindow消失
return false;//返回true,消費此事件。
}
aMap.setOnInfoWindowClickListener(this);
@Override
public void onInfoWindowClick(Marker marker) {
// TODO: 2016/11/3
}
aMap.setOnMapTouchListener(this);
@Override
public void onTouch(MotionEvent motionEvent) {
if (aMap != null && curShowWindowMarker != null) {
if (curShowWindowMarker.isInfoWindowShown()){
curShowWindowMarker.hideInfoWindow();
}
}
}
相關文章
- 高德地圖,只有部分marker顯示InfoWindow並可點選地圖
- vue中使用高德地圖自定義開發Vue地圖
- web技術分享| 【高德地圖】實現自定義的軌跡回放Web地圖
- Android 百度地圖InfoWindow 出現重疊的問題Android地圖
- iOS 高德地圖怎麼在螢幕內顯示所有的Marker?iOS地圖
- 高德地圖app怎麼使用北斗地圖? 高德地圖設定北斗地圖的教程地圖APP
- 如何實現OSM地圖本地釋出並自定義配圖地圖
- 高德地圖未來行程規劃在哪裡? 高德地圖預設出行時間的技巧教程地圖行程
- pytest 內建和自定義 marker
- 高德地圖聚合點,增加所有點選標記,點選後展示該聚合點下所有資訊地圖
- 高德地圖api標記點和線段重合點選響應問題地圖API
- 高德地圖之地圖的屬性地圖
- 高德地圖-地理圍欄功能實現地圖
- 高德地圖和google地圖適配地圖Go
- 高德地圖之地圖的生命週期地圖
- 高德地圖的四處進擊地圖
- 高德地圖首席科學家任小楓:視覺智慧在高德地圖的應用地圖視覺
- Highcharts 實現自定義匯出圖片
- Flutter自定義折線圖並新增點選事件Flutter事件
- 高德地圖開發彙總地圖
- 高德地圖JSAPI學習(一)地圖JSAPI
- react中使用高德地圖的原生APIReact地圖API
- 對接高德地圖API的總結地圖API
- 高德“成本價”:高精地圖的一次行業現實折射地圖行業
- vue 高德地圖實現進度條軌跡回放Vue地圖
- 【FAQ】關於JavaScript版本的華為地圖服務Map的點選事件與Marker的點選事件存在衝突的解決方案JavaScript地圖事件
- Android高德地圖貼合圖片完成手繪地圖展示Android地圖
- 自定義百度地圖元件地圖元件
- 百度地圖、高德地圖收藏夾位置資訊匯出小工具分享地圖
- uniapp 高德地圖 sha 生成方法APP地圖
- java接入高德地圖常用WEB APIJava地圖WebAPI
- Flutter整合高德定位和地圖功能Flutter地圖
- Android專案匯入高德地圖Android地圖
- 提-關於高德地圖熱力圖-問:地圖
- 來一手Flutter Web =-= 實現高德地圖外掛FlutterWeb地圖
- 3D地圖的定時高亮和點選事件3D地圖事件
- 自定義時間選擇器
- 高德地圖釋出《2024年春運出行預測報告》地圖
- 高德地圖如何短時間完成春節出行備戰工作?地圖