高德地图上显示自定义View方法
2015-06-19 17:00
375 查看
项目中有一个需求,能够将人的头像显示在地图上,用以显示用户的位置,这类的地图应用有很多,最常见的就是微信实时位置共享效果。
高德提供的demo里面只是有在地图上绘制图标,并没有说明这种效果如何实现,这里就把实现方式说明一下:
1.自定义布局文件
这里用到了一个显示圆形头像的自定义控件,大家可以根据实际应用选择不同的控件。
2.代码实现:
高德提供的demo里面只是有在地图上绘制图标,并没有说明这种效果如何实现,这里就把实现方式说明一下:
1.自定义布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null"> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:layout_centerInParent="true" android:adjustViewBounds="true" android:background="@null" android:src="@drawable/ic_bubble" /> <com.away.mother.view.CircularImage android:id="@+id/badge" android:layout_width="52dp" android:layout_height="52dp" android:layout_alignParentTop="true" android:layout_marginTop="10dp" android:layout_centerHorizontal="true" android:adjustViewBounds="true" android:background="@null" android:src="@drawable/friendactivity_personalportrait_default" /> </RelativeLayout>
这里用到了一个显示圆形头像的自定义控件,大家可以根据实际应用选择不同的控件。
2.代码实现:
public View getBubble(String userhead) { View view = this.getLayoutInflater().inflate(R.layout.layout_bubble, null); ImageView iv_user = (ImageView) view.findViewById(R.id.badge); String image = userhead; Bitmap bm = imageLoader.getBitmapFromMemoryCache(image); if (bm != null) { iv_user.setImageBitmap(bm); } return view; } /** * 绘制系统默认的1种marker背景图片 */ public void drawMarkers(LatLng latlng, String loc, String userhead) { //获取自定义View View view = getBubble(true, loc, userhead); //创建Marker对象 Marker marker = aMap.addMarker(new MarkerOptions().position(latlng) .icon(BitmapDescriptorFactory.fromView(view)).draggable(true)); int dir = (int) (Math.random() * 360); Marker markerloc = null; //绘制方向小蓝点 markerloc = aMap.addMarker(new MarkerOptions() .position(latlng) .icon(BitmapDescriptorFactory .fromResource(R.drawable.ic_loc)).draggable(true) .anchor(0.5f, 0.5f)); markerloc.setRotateAngle(dir); changeCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition( latlng, 18, 30, 0)), this); }
相关文章推荐
- makefile中=、:=和+=的区别
- java基础之 集合
- linux中断和异常睡眠问题
- 2.Logistic Regression
- 2.Logistic Regression
- 【Linux探索之旅】第一部分第二课:下载Linux,免费的噢
- 云架构指挥调度平台技术方案建议书
- CADMeister.v6.1-ISO 1DVD
- 怎么判断mp4文件的第一个关键帧在什么位置
- android有时无法读取url图片资源
- 简易Java(04):Java如何进行静态类型检查?
- Table View 学习
- 腾讯云搜纠错(QC)系统----用户的每一次错误搜索都能获得惊喜
- OJ积累--商品销售
- 查看树莓派的CPU温度
- Android的第二次增加SurfaceView基本使用
- JAVA 安全性转码代码(包括sql注入,跨站脚本)
- 解决gnuplot中'Terminal type set to 'unknown'不能显示绘图的问题
- COPRA RF 2005 SR1最新版 (冷弯成型,轧辊设计)
- 自适应屏幕大小的网页是怎么做出来的