Thread
或AsyncTask
)将每个瓦片作为图像下载到本地内部或外部存储器,并“手动”确定“所有新瓦片已下载”事件(例如,在每个public void onSuccess()
(对于Picasso)或protected void onPostExecute()
(对于AsyncTask
)上增加已下载的瓦片计数器,或在public void run()
结束时等待等于所有瓦片数量),然后像Alex Vasilkov的此答案中那样使用{{link3:TileProvider
}}来下载瓦片的本地存储。请保留HTML标签。
更新
为了在下载缩放级别为zoom+1的瓦片时显示先前的地图,可以创建一个GroundOverlay
,其中包含当前地图视图的截图。可以像DiscDev的this问题的答案中那样制作Google地图的截图。
更新#2
有几种方法可以解决您的问题:1)您可以创建一个自定义视图,该视图扩展MapView
类,就像this答案中一样,并在重写的dispatchDraw()
方法中显示您想要的任何内容;或者 2)您可以在MapView
上方设置一个ImageView
,并在缩放更改和加载新瓦片时将其显示为屏幕截图。如果必要,您可以将来自ImageView
的点击事件转换为MapView
等。
MapView
的自定义视图,重写dispatchDraw()
并在新地图加载时在其中显示临时地图。