我用的是高德的3D地图,用2D地图无此问题。
解决方法是,在使用到地图的Activity中的onCreate中添加以下代码:
getWindow().setFormat(PixelFormat.TRANSLUCENT);
另外有群友提到一种方法,也发一下吧:
- 最佳做法是在activity 的 root view 里面 加入一个 长宽都是0px的 不可见 SurfaceView元素
实际项目中为了方便,直接开启硬件加速也可以解决问题
android:hardwareAccelerated="true"
如果是百度地图,可以参考以下方案
1,在activity种的onCreate()方法中设置窗口透明度。
public void onCreate(Bundle savedInstanceState) {
//避免加载地图黑屏
getWindow().setFormat(PixelFormat.TRANSLUCENT);
super.onCreate(savedInstanceState);
}
2,如果问题没有得到解决,手动在fragment的onResume()、onPause()方法中手动添加可视状态:
@Override
public void onResume() {
mMapView.setVisibility(View.VISIBLE);
mMapView.onResume();
super.onResume();
}
@Overridepublic void onPause() { mMapView.setVisibility(View.INVISIBLE); mMapView.onPause(); super.onPause();}
3,如果还为得到解决,可以尝试替换地图控件,可以把MapView换成TextureMapView:
<com.baidu.mapapi.map.TextureMapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:clickable="true" >
</com.baidu.mapapi.map.TextureMapView>