【Android】说做就做:偶的头像华丽的漂浮在map上。。。

本文介绍如何在地图应用中实现自定义图标显示。通过继承Overlay类并重写draw方法,利用PixelCalculator将经纬度转换为地图上的XY坐标,最终通过Canvas绘制自定义图标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地图怎么可以缺少指示图标呢?实现这个功能是通过override default Overlay来实现的。

基于上篇的CityMap,在MapView中获取一个OverlayController:

java 代码
  1. OverlayController oc = myMapView.createOverlayController();  


然后加入你自己的Overlay实现

java 代码
 
  1. public class KusoIconOverlay extends Overlay {  


基本上你要实现Overlay里面draw()method:

java 代码
 
  1. //既然是手机app,就不强调OO了。。。
  2. Bitmap bitmap;  
  3.     Point p;  
  4.       
  5.     @Override  
  6.     public void draw(Canvas canvas, PixelCalculator calculator, boolean shadow) {  
  7.         super.draw(canvas, calculator, shadow);  
  8.         int[] xyCoordinates = new int[2];  
  9.         calculator.getPointXY(p, xyCoordinates);  
  10.         canvas.drawBitmap(bitmap, xyCoordinates[0], xyCoordinates[1], new Paint());  
  11.     }  

通过PixelCalculator把经度维度转换成地图上面的XY坐标。
通过canvas来画个bitmap,也就是偶华丽的kuso头像。。。

回到MapView中,创建kuso overlay:

java 代码
 
  1. KusoIconOverlay overlay = new KusoIconOverlay();  
  2.         overlay.bitmap = kuso;  
  3.         overlay.p = p;  

在先前得到的OverlayController中加入kuso overlay:
java 代码
 
  1. oc.add(overlay, true);  

这样就大功告成了!

接下来的挑战是实现模拟GPS移动。。。让偶的头像真正的动起了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值