我一直在努力使用 Google Maps 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 个蓝色像素的切片提供程序和我的法线贴图切片提供程序,我可以直观地看到地图从黑色 -> 蓝色 -> 我的地图变化。即使我的自定义蓝色瓷砖提供程序立即返回 1px 蓝色瓷砖。