想在集成的高德地图中实现一个marker受到点击时,图标变大的效果,网上查了好多,要么不符合我的需求,要么语焉不详,干脆自己动手写了个,现在把代码分享出来


aMap.setOnMarkerClickListener(new OnMarkerClickListener() {@Overridepublic boolean onMarkerClick(Marker marker) {      marker.showInfoWindow();//显示大图标lastBm = getNormalIcon(marker.getOptions());//记录即将被覆盖的原图,用于以后恢复Marker markerNew = changeMarkerImg(marker);//改变marker的icon,并得到新的marker对象String curMarkerId = markerNew.getId();// 记录下这个图标的id,用于判断再次点击是否还是这个按钮resetMarker(curMarkerId, markerNew);//重置除点击按钮外的所有按钮markerLast = markerNew;// 记录当前marker对象,用于下次点击时判断return true;}});2,更换marker的icon方法private Marker changeMarkerImg(Marker marker) {MarkerOptions options = marker.getOptions();options.getIcon().recycle();// 回收原图片Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.ico_dot);marker.setIcon(BitmapDescriptorFactory.fromBitmap(bm));return marker;}3,重置除点击按钮外的所有按钮private void resetMarker(String curMarkerId, Marker markerNew) {if (null != markerLast) {if (!TextUtils.equals(curMarkerId, markerLast.getId())) {markerLast.setIcon(new BitmapDescriptorFactory().fromBitmap(lastBm));}}}4,生成infoWindow的回调方法@Overridepublic View getInfoWindow(Marker marker) {View infoWindow = getPressView(marker);return infoWindow;}@SuppressLint("NewApi")public View getPressView(Marker marker) {// 小气泡部分View infoWindow = getLayoutInflater().inflate(R.layout.custom_info_window, null);Bitmap bitmap = getPressIcon(marker.getOptions());BitmapDrawable background = new BitmapDrawable(MarkerActivity.this.getResources(), bitmap);infoWindow.findViewById(R.id.info_window).setBackground(background);// 业务部分buttomView.setVisibility(View.VISIBLE);marker.getSnippet();if (marker.getSnippet().contains("加油站")) {// 加油站图片markerName.setText("加油站");} else if (marker.getSnippet().contains("银行")) {// 银行图片markerName.setText("银行");} else if (marker.getSnippet().contains("厕所")) {// 厕所图片markerName.setText("厕所");}markerContent.setText("" + marker.getTitle());return infoWindow;}5,生成默认图标bitmap的方法private Bitmap getNormalIcon(MarkerOptions options) {Bitmap bm = null;if (options.getSnippet().contains("加油站")) {// 加油站图片bm = BitmapFactory.decodeResource(getResources(),R.drawable.ico_refuel_normal);} else if (options.getSnippet().contains("银行")) {// 银行图片bm = BitmapFactory.decodeResource(getResources(),R.drawable.ico_money_normal);} else if (options.getSnippet().contains("厕所")) {// 厕所图片bm = BitmapFactory.decodeResource(getResources(),R.drawable.ico_toilet_normal);}return bm;}

高德地图点击marker图标改变效果实现过程相关推荐

  1. 高德地图 - 点击改变当前 marker 图标(marker点击切换 icon 上一个 icon 恢复原样)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  2. android高德marker添加点击,高德地图上添加marker,给每一个marker添加点击事件。...

    高德地图上添加marker,给每一个marker添加点击事件. 高德地图上添加marker,给每一个marker添加点击事件.javascript var watch = [] $.ajax({ ty ...

  3. Android高德地图自定义Mark并实现聚合效果

    Android高德地图自定义Mark并实现聚合效果 起因:公司本来项目里面用到了高德地图,然后最近老板看见别人的APP里面有个聚合的这个功能,老板:"这个效果能不能实现,我也要!" ...

  4. 只用一个marker 替换 高德_Android基于高德地图完全自定义Marker的实现方法

    前言 相信做地图社交类APP开发的大家都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式.本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多 ...

  5. vue高德地图点击放大Maker

    lizuncong (lizuncong) · GitHubI am a strong believer in reverse engineering. lizuncong has 42 reposi ...

  6. 高德地图sdk设置marker并且将设置为地图中心

    高德地图sdk设置marker并且将设置为地图中心,直接在官方demo里改,授权key需要改为自己的. <!doctype html> <html> <head>& ...

  7. 高德地图 JS Web 添加自定义图标,自定义窗口标记

    高德地图 JS Web 添加自定义图标,自定义窗口标记 如何做一个类似这样的地点指示的地图: 线上实例: http://kylebing.cn/tools/map/#/info/car-departm ...

  8. 大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊

    这里写自定义目录标题 大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊 1.大屏缩放自适应时使用tansform scale 缩放 1.1.window.res ...

  9. php 高德地图点击事件,javascript - 高德地图marker动态绑定点击问题

    javascript - 高德地图marker动态绑定点击问题 PHP中文网2017-04-11 12:37:51 0 2 282 我把代码整理在同一个页面了,信息窗口里面的红色详情两字点击的 ...

最新文章

  1. topcoder srm 691 div1 -3
  2. mysql中两种备份方法的优缺点_Mysql两种存储引擎的优缺点
  3. php 二叉树判断节点的位置,PHP实现判断二叉树是否对称的方法
  4. v8学习笔记(一) 调用层次
  5. html除左侧浮动,html清除浮动的6种方法示例
  6. pb 执行存储过程带参数_PB级海量数据服务平台架构设计实践
  7. Selenium自动化测试-4.By定位及如何确定元素唯一
  8. SQL Server 2012:SQL Server体系结构
  9. tomcat版本区别
  10. 软件设计 基础篇(一) 开发文档
  11. python2.7读取txt文件_python如何读取txt文件
  12. MeshLab源码阅读笔记
  13. excel冻结行和列_Spire.Cloud.Excel 冻结或解除冻结Excel中的行和列
  14. 《编程小白的第一本python入门书》——读书笔记
  15. JMeter教程1 - 介绍环境搭建 (Mac)插件安装
  16. poi3.17导出excel添加附件解决办法
  17. 51 Nod1113 矩阵快速幂
  18. 升级产品思维,三年内让自己的收入翻十倍
  19. ORACLE EM 13C安装部署和初步使用
  20. V4L2编程代码实现以及YUV格式(V4L2二)

热门文章

  1. 左手读红楼梦,右手写 BUG,闲快活
  2. 红外线人体感应灯arduino_Arduino 各种模块篇 人体红外感应模块 proximity sensor
  3. doodoo.js配置教程
  4. CodeReview中常见缩写
  5. 坚定信念,雨后终会见彩虹
  6. 解决echarts饼图label显示不全的问题
  7. 【DG】DG的3种保护模式
  8. PTA 用java编写 7-4 房产税费计算2022
  9. Minecraft 从安装到入门
  10. Matlab之real和imag函数