【问题标题】:Android Google maps - custom tile overlayAndroid 谷歌地图 - 自定义瓦片叠加
【发布时间】:2011-11-21 01:36:03
【问题描述】:

一直致力于为 Android 应用开发自定义图块叠加实现。 我在后台处理图像下载时遇到问题。

快速概览: 我有一个扩展 Overlay 的类(MapOverlay)。 draw 方法基本上计算所需的图像(位图)和在屏幕上绘制它们的 x,y 位置。然后我有一个 AsyncTask 循环遍历每个图块,如果存储卡上不存在图像(本地缓存)则下载图像,然后一旦 AsyncTask 完成,我将遍历图像并将它们绘制到传递的画布对象进入 MapOverlay 的 draw 方法。但是位图永远不会被绘制出来。

我已经通过在 AsyncTask 完成时记录画布元素的宽度和高度进行了一些基本调试,但它为它们返回 0,所以我猜测画布对象不再可用于运行的代码在draw方法完成后在AsyncTask的onPostExecute()中

如果没有线程,我可以很好地工作,除了在图像下载阻塞 UI 线程时平移时“冻结”。现在我完全无法让线程工作

【问题讨论】:

  • 您能否分享一些示例代码,了解您所做的工作以及如何加载瓷砖。您是否还检查了 zoomIn 和 Zoo out Raj 是否发生同样的事情

标签: android google-maps canvas


【解决方案1】:

您是否尝试在 AsyncTask 完成下载后调用 postInvalidate()?这样, MapView.draw() 中的调用将获取并绘制下载的叠加层(即如果您的缓存系统正常工作)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多