论坛首页 移动开发技术论坛

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

浏览 7712 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-20  

地图怎么可以缺少指示图标呢?实现这个功能是通过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移动。。。让偶的头像真正的动起了。。。

  • 大小: 26.6 KB
   发表时间:2007-11-20  
bitmap是通过读取resource来建立的。。。我是copy别人的。。。
0 请登录后投票
   发表时间:2007-11-20  
楼主,请问如何让模拟器连到网上?我运行自带的Maps什么也看不到(除了一堆方格……)
0 请登录后投票
   发表时间:2007-11-20  
自动连接网络的啊, 你试着用MOUSE移动看看...有时MAP暂时出不来.
0 请登录后投票
   发表时间:2007-11-21  
我在网上找到有人说怎么解决了,要给它设一个代理服务器。不过我还没有试。

Here is a potential work around.  It uses the command line to add an
http proxy.

Note: you may need to update the escaping to use for windows.

cd to the location of adb
replace the pieces [host_or_IP] and [port] with the correct values for
the proxy. So if your proxy is corp_proxy, on port 8080, then in the
quotes should be corp_proxy:8080
----
./adb shell sqlite3 /data/data/com.google.android.providers.settings/
databases/settings.db "\"INSERT INTO system
VALUES(99,'http_proxy',' [host_or_IP]:[port]');\""
----

To see if it was added correctly you can run the following command
line. You should see 99|http_proxy| [host_or_IP]:[port]
----
./adb shell sqlite3 /data/data/com.google.android.providers.settings/
databases/settings.db "\"SELECT * FROM system\""
----

To remove the proxy, the following script can be run:
---
./adb shell sqlite3 /data/data/com.google.android.providers.settings/
databases/settings.db "\"DELETE FROM system WHERE _id=99\""
---

- Luisa

On Nov 16, 12:10 pm, footose <ha...@generationdub.com> wrote:
0 请登录后投票
   发表时间:2007-11-23  
代理我不是很清楚。。。我的连接没有用到proxy。。。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics