我一直在苦苦挣扎谷歌地图v2和自定义瓦片。虽然它正常工作,但我们经常在谷歌地图上看到黑色方块,这非常影响使用。
我可以通过简单地执行以下操作重现该问题:
mapFragment = new MapFragment() {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mapFragment.getMap().setMapType(GoogleMap.MAP_TYPE_NONE);
}
};
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.map, mapFragment);
trans.commit();
我使用了这段代码和一个标准的活动以及一个帧布局。如果我在Nexus4上缩放到足够远,背景会变黑。如果我在其上放置瓷砖,我会看到随着缩放的进行,黑色闪烁。
我已经看过很多解决方法,但是似乎没有一个能完全解决这个问题。它似乎只会发生在某些缩放级别上,但是我(A)需要这些缩放级别,而且(B)似乎不能限制缩放(也不想构建自定义捏合缩放实现)。
我已经尝试了一些自定义瓷砖提供者的测试。使用
MAP_TYPE_NONE
、一个简单返回1像素蓝色瓷砖的瓷砖提供者和我的正常地图瓷砖提供者,我可以在视觉上看到地图从黑色 -> 蓝色 -> 我的地图变化。即使我的自定义蓝色瓷砖提供者立即返回1像素的蓝色瓷砖。