Android 更新地图覆盖
我在理解Android中地图API的概念时有些困难。每次我想在地图上画新的东西时,我都会创建一个新的覆盖图,这对吗?乍一看,这似乎效率很低。是整个层结构都烧坏了,我根本不必担心性能,还是我缺少了像updateOverlay这样的东西?Android 更新地图覆盖,android,Android,我在理解Android中地图API的概念时有些困难。每次我想在地图上画新的东西时,我都会创建一个新的覆盖图,这对吗?乍一看,这似乎效率很低。是整个层结构都烧坏了,我根本不必担心性能,还是我缺少了像updateOverlay这样的东西? 或者在扩展Overlay类并随后调用MapView.invalidate()时,我会实现自己的updateOverlay()方法吗?您只创建一次Overlay,然后将其添加到MapView。然后您需要在MapView上调用postInvalidate(),这样新的
或者在扩展Overlay类并随后调用MapView.invalidate()时,我会实现自己的updateOverlay()方法吗?您只创建一次Overlay,然后将其添加到MapView。然后您需要在MapView上调用postInvalidate(),这样新的覆盖将显示在屏幕上。如果没有此调用,将创建覆盖,但不会显示 由于活动生命周期中的onResume()方法总是在应用程序启动或刚刚唤醒时调用,因此您希望在onResume()中启用位置跟踪,并在onPause()中禁用它。MyLocationOverlay类中有一个有用的方法:runOnFirstFix()此方法允许您设置一个代码,在我们找到位置后立即运行:
@Override
public void onResume()
{
super.onResume();
whereAmI.enableMyLocation();
whereAmI.runOnFirstFix( new Runnable() {
public void run() {
mapController.setCenter(whereAmI.getMyLocation());
}
});
}
在那之后,你不需要自己做任何事情,因为MyLocationOverlay正在获取位置更新,并将闪烁的蓝点放在该位置
@Override
public void onPause()
{
super.onPause();
whereAmI.disableMyLocation();
}
为什么不使用?