我正在尝试使用自定义瓦片的Google地图。为此,我使用了Google API演示中的样例:https://github.com/googlemaps/android-samples,并以
TileOverlayDemoActivity
作为基础进行开发。一切都按预期工作,但是当您缩放地图时,所有瓦片都消失了,然后重新生成,结果导致出现一个大约一两秒钟的灰色屏幕。如果您稍后再次缩放到该级别,问题就不存在了,但是,但是,如果重新启动应用程序,则问题会再次出现!这是我从API Demo的应用程序中创建的录制(原样未更改):https://www.youtube.com/watch?v=OZ3aqLOZ2CY。起初我认为下载瓦片需要一些时间,因此我尝试使用轻量级的TileProvider
进行测试:public class MyTileProvider implements TileProvider {
@Override
public Tile getTile(int i, int i1, int i2) {
return new Tile(256, 256, byteArray);
}
}
其中byteArray
始终相同,只需从一次生成的“Bitmap”创建:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
但是,这里仍然存在相同的问题。
我认为没有解决此问题的方法,因为我在网上没有找到任何解决方案。
但如果有人有解决办法,我可以接受。我正在考虑尝试从顶部到底部缩放每个级别,以便它们只被绘制一次(因为我在绘制缩放级别后没有看到这个问题)。