在android百度地图上添加自定义覆盖物

2024-06-07 20:38

本文主要是介绍在android百度地图上添加自定义覆盖物,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        在项目中遇到一个问题,需要在百度地图上添加一个自定义的覆盖物,看了一下官方的文档没有找到能够满足要求的(也许是我没有发现)。我想肯定有其它的方法,这里我给一种我自己的解决方法。

        思路:官方提供的覆盖物类(ItemizedOverlay<OverlayItem>)可以继承,然后自定义,但是它接受的是一个Drawable对象。于是我采用的是将自定义的一个view转换为一个Drawable的方式来实现。

        效果如图所示:


       首先加载自定义的一个view,然后将view中控件的值填上。创建一个空的bitmap对象,使用view的draw方法,将view绘制在bitmap中。关键代码:

LayoutInflater mInflater = LayoutInflater.from(context);View view = mInflater.inflate(R.layout.layer, null);//获取背景图片的宽和高Drawable d = context.getResources().getDrawable(R.drawable.search_annotation_red);Bitmap b = Bitmap.createBitmap(d.getMinimumWidth(), d.getMinimumHeight(), Bitmap.Config.RGB_565);//设置名字view.draw(new Canvas(b));

private static Bitmap getViewBitmap(View view) {view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));  view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());  view.buildDrawingCache();  Bitmap bitmap = view.getDrawingCache();  return bitmap;}

百度地图的覆盖物类:

/**覆盖物*/class OverlayTest extends ItemizedOverlay<OverlayItem> {private Context mContext = null;public OverlayTest(Drawable marker,Context context, MapView mapView){super(marker,mapView);this.mContext = context;}protected boolean onTap(int index) {/*** TODO* 这里响应点击事件,启动activity或者其它处理*/Toast.makeText(MainActivity.this, "点击目标", Toast.LENGTH_SHORT).show();return true;}public boolean onTap(GeoPoint pt, MapView mapView){super.onTap(pt,mapView);return false;}}


本demo下载地址:http://download.csdn.net/detail/u011421480/5856255

这篇关于在android百度地图上添加自定义覆盖物的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040239

相关文章

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

dubbo3 filter(过滤器)如何自定义过滤器

《dubbo3filter(过滤器)如何自定义过滤器》dubbo3filter(过滤器)类似于javaweb中的filter和springmvc中的intercaptor,用于在请求发送前或到达前进... 目录dubbo3 filter(过滤器)简介dubbo 过滤器运行时机自定义 filter第一种 @A

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容