码迷,mamicode.com
首页 > 其他好文 > 详细

Camera和百度地图在TabActivity里,互相切换导致显示紊乱问题解决

时间:2015-04-03 00:19:22      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:百度地图   camera   

今天遇到一个奇葩问题,一个app的大框架是下面有四个Tab页,于是我用了TabActivity,其中两个tab页分别是扫一扫和百度地图的activity。问题来了,如果点击tab页进到Camera里,扫描正常,但是再点击地图进去,整个地图就显示不出来了。反之先进去百度地图,再进camera,也是同样问题,只有地图在上面盖着,Camera预览在下面显示不出来。

示例如下:

技术分享

技术分享

经过咋家分析,原因里Camera使用了Surfaceview作预览载体,Surfaceview具有抢占窗口的特性,他本质上不是一个View。所以可以推测,百度地图的MapView也是类似一种东西,当两个存活在一个TabActivity里,互相切换就会导致上述问题。解决方法有2:

1,是将Camera预览载体换位TexttureView,应该就ok了!

2,不要把Camera和百度地图放在一个Tab里,让其中一个直接由TabActivity启动。此时进到扫描里,就跟TabActivity么关系了,百度地图再怎么切换也互不影响了。

相关代码如下:

case R.id.radiobtn_2:
goToMipcaActivityCapture();
radiobtn_2.setChecked(false);
// this.mHost.setCurrentTabByTag(TAB2);
break;

另外,由于点击扫描,tag没有设下去,要增加一个根据host的tag更新tag icon的函数,在onResume里调用:

private void updateTabIconByTag(){
String currTag = mHost.getCurrentTabTag();
if(currTag.equals(TAB1)){
radiobtn_1.setChecked(true);
}else if(currTag.equals(TAB3)){
radiobtn_3.setChecked(true);
}else if(currTag.equals(TAB4)){
radiobtn_4.setChecked(true);
}
}


时间仓促,就写这么多吧。

Camera和百度地图在TabActivity里,互相切换导致显示紊乱问题解决

标签:百度地图   camera   

原文地址:http://blog.csdn.net/yanzi1225627/article/details/44839223

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!