解决高德地图闪屏黑屏

来源:互联网 发布:eclipse是什么软件 编辑:程序博客网 时间:2024/05/16 18:07

之前做高德地图,把地图嵌套在fragment里面。高德其实不推荐说嵌套在fragment里面,

TextureMapView性能是没有MapView好的。
但是项目需要,只能那么做的。其实我framgment切换是没有问题的,但是我有一个SlidingMenu的功能,使用
SlidingMenu就会出现闪屏黑边
地图如果是3d的则会闪屏,但是2d的就不会了。
有人说把getWindow().setFormat(PixelFormat.TRANSLUCENT)加在activity可以解决,但是我试了是没有效果的。
闪屏的原因是因为高德地图绘制的速度大于UI的绘制速度(网上看的,不知道有没有说错)
MapView替换成TextureMapView正常是可以解决闪屏(但是我的是没有解决,我不知道怎么回事)
检查下fragment是用什么方法切换的。如果是用replace,那就换成hide和show。因为replace会替换fragment,然后重新执行生命周期,地图又会绘制一遍。
正常用hide和show是可以解决的。
我之前是这么写的
final FragmentTransaction tf =        getSupportFragmentManager().beginTransaction();
// 实例化Fragment页面HomeFragment fragment = new HomeFragment();// 替换当前的页面fragmentTransaction.replace(R.id.frame_content, fragment);// 事务管理提交fragmentTransaction.commitAllowingStateLoss();
修改后
if (fragmentSpace != null) {    tf.hide(fragmentSpace);}if (fragmentAt != null) {    tf.hide(fragmentAt);}
if (mHomeFragment == null) {    mHomeFragment = new HomeFragment();    tf.add(R.id.frame_content, mHomeFragment);} else {    tf.show(mHomeFragment);}tf.commitAllowingStateLoss();

如果还是有闪黑边的话,试着在地图控件里面加入
android:layout_marginLeft="-80dp"
只是让黑边隐藏,但是不能决定黑边的问题。
也有人说用高德地图的截图功能,然后
SlidingMenu开启的时候截屏,利用截屏的功能把黑屏,黑屏遮盖。我试过了,黑屏黑边是可以解决,但是截图的时候还是会闪屏。不知道是不是我的手机问题。
fragment和地图本身就不是很兼容。
这些方法要是没有办法解决,去看看地图的sdk是不是最新版,升级最新版一般都是可以解决。
我是用了以上的方法,加上地图最新的sdk。解决了闪屏黑屏黑边的问题。

阅读全文
0 0
原创粉丝点击