gpt4 book ai didi

android - 如何在不闪烁的情况下更新 TileOverlay?

转载 作者:IT王子 更新时间:2023-10-29 00:07:03 24 4
gpt4 key购买 nike

我有一些动态图 block 内容要显示在 map 顶部(特别是天气图像 -- 雷达、卫星、温度等)。我正在使用适用于 Android v2 的 Google Maps API。

我遇到的问题显然是更新平铺图像的唯一方法(即当新数据到达时,或者当帧在延时动画中前进时)是调用 TileOverlay.clearImageCache。不幸的是,当我这样做时,瓷砖覆盖片会闪烁片刻。这是因为 clearImageCache 会立即从显示中删除现有的平铺图像,但在解码和显示新的平铺图像之前存在延迟。

我正在使用自定义 TileProvider 来缓存平铺图像,而不是每次都从服务器获取它们。但即使它只提供缓存的切片(即我的 TileProvider.getTile 实现没有造成明显的延迟),在处理过程中仍然存在足够的延迟,用户可以看到闪烁。

有人知道避免这种闪烁的方法吗?有什么方法可以对瓷砖叠加层进行双重缓冲?我尝试使用附加到 map 的两个 TileOverlay 对其进行双重缓冲,其中一个是不可见的。但是不可见的 TileOverlay 并没有开始从我的 TileProvider 中获取任何图 block ——即使在我调用 clearImageCache 之后也是如此。

最佳答案

是否可以加载即将发布的平铺图像但将可见性设置为 false? Tile.setVisible(false);

然后当你想改变时(在即将到来的图 block 加载之后),将即将到来的图 block 设置为可见,当前图 block 不可见?

CurrentTile.setVisible(false);
NewTile.setVisible(true);

这样所有的变化都发生在同一个渲染帧中,并且没有等待缓存图像加载的延迟。

关于android - 如何在不闪烁的情况下更新 TileOverlay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14409813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com