在android百度地图上添加自定义覆盖物
来源:互联网 发布:手机小说阅读软件 编辑:程序博客网 时间:2024/05/16 02:04
在项目中遇到一个问题,需要在百度地图上添加一个自定义的覆盖物,看了一下官方的文档没有找到能够满足要求的(也许是我没有发现)。我想肯定有其它的方法,这里我给一种我自己的解决方法。
思路:官方提供的覆盖物类(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百度地图上添加自定义覆盖物
- android百度地图自定义覆盖物
- 本篇文章主要介绍如何在百度地图上添加Overlay(即图层或覆盖物)。
- 百度地图API如何给自定义覆盖物添加事件
- 【百度地图API】如何给自定义覆盖物添加事件
- 百度地图API自定义覆盖物与添加点击事件
- 百度地图添加复杂的自定义覆盖物
- 【百度地图API】如何给自定义覆盖物添加事件
- 百度地图添加覆盖物
- Android 百度地图添加自定义marker(覆盖物)不显示图片的解决方法
- 百度地图自定义覆盖物
- 百度地图自定义覆盖物
- 百度地图自定义覆盖物
- 【iOS百度地图系列_2】卫星图、交通图、热力图及在基本地图上添加覆盖物
- 在百度地图添加覆盖物附带文字
- Android使用百度地图---添加覆盖物及定位
- Android 百度地图定位、添加覆盖物()
- 最新百度地图android sdk自定义覆盖物
- [windows编程]CListCtrl的排序算法实现
- hdu 2460 poj 3694 (双联通+LCA)
- 怎么样从多列的DataTable里取需要的几列
- 交叉编译:cannot find /lib/libc.so.6 collect2: ld returned 1 exit status
- Buletooth的UUID
- 在android百度地图上添加自定义覆盖物
- user-permission
- 一个不甚完美的多功能三维动画的类
- CSS3 border-image详解、应用及jQuery插件
- opencv 的开闭,腐蚀膨胀运算的例子。
- php获取MAC地址
- spring mvc汽车管理系统,代码笔记
- Android canvas PaintFlagsDrawFilter 抗锯齿
- CATransition动画的简单使用