eri*_*001 38 android google-maps-android-api-2
我有一些动态图块内容显示在地图上(特别是天气图像 - 雷达,卫星,温度等).我正在使用Google Maps API for Android v2.
我遇到的问题显然是更新磁贴图像的唯一方法(即当新数据到达时,或者帧在时间推移动画中前进时)是调用TileOverlay.clearImageCache.不幸的是,当我这样做时,瓷砖覆盖层会闪烁一会儿.这是因为clearImageCache会立即从显示中删除现有的图块图像,但在解码和显示新的图块图像之前会有一段延迟.
我正在使用自定义TileProvider缓存切片图像,而不是每次从服务器中获取它们.但即使它只提供缓存的磁贴(即我的TileProvider.getTile实现没有明显的延迟),用户仍然可以看到闪烁的延迟.
有谁知道避免这种闪烁的方法?有什么方法可以双重缓冲瓷砖覆盖?我尝试使用附加到地图的两个TileOverlay对其进行双缓冲,其中一个是不可见的.但是,即使在我调用clearImageCache之后,看不见的TileOverlay也无法从我的TileProvider中获取任何图块.
是否可以加载即将到来的图块图像,但将可见性设置为 false?Tile.setVisible(false);
然后,当您想要更改时(在加载即将到来的图块之后),将即将到来的图块设置为可见,并将当前图块设置为不可见?
CurrentTile.setVisible(false);
NewTile.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
这样,更改全部发生在同一渲染帧内,并且等待缓存图像加载时不会出现延迟。
归档时间: |
|
查看次数: |
3661 次 |
最近记录: |