我一直在使用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();
Run Code Online (Sandbox Code Playgroud)
我使用此代码和带有framelayout的标准活动.如果我在Nexus4的背景中放大得足够远,它会变黑.如果我把瓷砖放在上面,我会在放大时看到黑色闪光.
我已经看到了很多关于如何解决这个问题的解决方法,而且它们似乎根本没有用.它似乎只发生在某些缩放级别上,但我(A)需要那些缩放级别,而(B)似乎无法限制缩放(无需构建自定义缩放以进行缩放实现).
我已经使用自定义磁贴提供程序进行了一些测试.有了MAP_TYPE_NONE
,一个简单地返回1个蓝色像素的瓷砖提供商和我的普通地图瓷砖提供商,我可以直观地看到地图从黑色 - >蓝色 - >我的地图变化.即使我的自定义蓝色瓷砖提供商立即返回1px蓝色瓷砖.