Android:Google MapView在地图加载时显示进度指示器
如果a仍在加载,是否有办法侦听?因为我想在Android:Google MapView在地图加载时显示进度指示器,android,google-maps,Android,Google Maps,如果a仍在加载,是否有办法侦听?因为我想在MapView下载地图分幅时显示进度指示器(例如沙漏) 有解决方案吗?在当前的MapView实现中,没有直接的API来实现这一点。MapView的文档说 “我们绘制地图背景(根据需要加载分幅)” 您可以尝试在onDraw完成时扩展MapView并隐藏进度指示器。但是我的猜测是,MapTiles是异步加载的,因此您的进度条将在MapTiles全部加载之前完成。您可以使用OnCameraChangeListener和OnMapLoadedCallback来模
MapView
下载地图分幅时显示进度指示器(例如沙漏)
有解决方案吗?在当前的
MapView实现中,没有直接的API来实现这一点。MapView的文档说
“我们绘制地图背景(根据需要加载分幅)”
您可以尝试在onDraw完成时扩展MapView并隐藏进度指示器。但是我的猜测是,MapTiles是异步加载的,因此您的进度条将在MapTiles全部加载之前完成。您可以使用OnCameraChangeListener
和OnMapLoadedCallback
来模拟这种行为
从Google地图的
摄影机更改上的公共摘要无效(摄影机位置)
相机位置更改后调用。在动画中,
此侦听器可能不会收到中间摄像机位置的通知。信息技术
始终为动画中的最终位置调用
这是在主线程上调用的
从Google Map.OnMapLoadedCallback的
加载时公共摘要无效()
当贴图完成渲染时调用。这只会被称为
一旦如果希望收到通知,则必须请求另一次回调
再说一遍
如前所述,onmapload()
将只被调用一次,因此策略可以是每次调用onCameraChange
时请求一个GoogleMap.onmaploatedcallback
下面是一个(非常简单)的例子来说明答案:
public class MapsActivity extends FragmentActivity implements OnCameraChangeListener, OnMapLoadedCallback {
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
googleMap = mapFragment.getMap();
googleMap.setOnCameraChangeListener(this);
}
@Override
public void onMapLoaded() {
//TODO: Hide your progress indicator
}
@Override
public void onCameraChange(final CameraPosition cameraPosition) {
googleMap.setOnMapLoadedCallback(this);
//TODO: Show your progress indicator
}
}
嘿,你找到什么新的解决方案了吗?我不抱歉,已经好几年没有做任何Android开发了。这肯定是我想要的。调用onmapload()
似乎花费了太多时间,但这是因为映射加载了所有位置,等等。这绝对是正确的API。非常感谢。应该是IMHO接受的答案。