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

今天遇到一个奇葩问题,一个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);
}
}

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

时间: 2024-12-25 14:52:56

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

隐藏后重新显示 百度地图 ,地图显示不完整,只显示左上角一小部分

问题描述:我一个DIV1里,放了一个显示百度地图的mapDiv. 问题出现 了, 当初始化(第一次显示DIV1)时 ,可以 正常显示 地图, 当隐藏后 再 显示 时, 地图就 出错了,地图显示不完整,只显示左上角一小部分. jsp代码: <!-- 显示地图,获取经纬度    start --> <div id="mapModel" class="modal  fade " tabindex="-1" role="dia

百度地图生成器添加标注后图标不显示的解决方法

作为传统企业网站的联系我们页面里,一般都会加个地图,如果只有文字描述,会显得很LOW. 百度地图生成器(http://api.map.baidu.com/lbsapi/creatmap/)就很好的满足了这一部分用户的诉求,快速简单的给自己网页添加一个加标注的地图,但是美中不足的,现在这个百度地图生成器添加标注后,标注图标不显示,如下图: 解决方法也很简单,只要找到生成的代码中的icon地址: http://app.baidu.com/map/images/us_mk_icon.png 替换成这个

js 调用百度地图,并且定位用户地址,显示省市区街,经纬度

网上的一些百度地图例子,基本上没有连套的 定位 例子.下面我分享一套我自己弄的,废话不多说,看代码,里面有注释! 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 5 <meta http-equiv="Content-Type"

解决在EasyUI中使用百度地图出现不居中和坐标图标显示异常的问题(红色代码部分)

问题: 1.加载指定经纬度的坐标点怎么都不居中显示,总是显示在左上角,需要在地图加载完后拖动才看到指定的坐标点: 2.显示的坐标点图片没有正常显示,后面使用了自定义坐标图片(如图): 解决后: 参考: 1.百度地图API类:http://developer.baidu.com/map/reference/index.php?title=Class:%E6%80%BB%E7%B1%BB/%E6%A0%B8%E5%BF%83%E7%B1%BB 2.自定义图标这里有:http://blog.csdn.

Android使用百度地图出现闪退及定位时显示蓝屏问题

 目录 1.Android使用百度地图出现闪退 2.Android使用百度地图定位出现蓝屏问题     1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="D9Lh8MrrLMUuXdWMU8tRLtDsta6PoaYN" /> 但是

解决页面引用百度地图API设置点的logo不显示问题

在写css时需要引用一个百度的api地图,却发现设置点的logo图片不能显示,后查阅百度测试发现是图片路径的问题: 在引用的下载的html页面找到 var icon = new BMap.Icon 将括号后的图片地址改为"http://map.baidu.com/image/us_mk_icon.png"就可以了 原文地址:https://www.cnblogs.com/luna666/p/8351035.html

js版本百度地图创建自定义覆盖物,点击显示对应信息框

<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body, html, #allmap { width: 100%; height: 100%; overflow: hidden; margi

百度地图的定位以及拖拽(显示坐标位置)

截图示例 <!doctype html> <html lang="en"> <head>  <meta charset="UTF-8">  <meta name="Generator" content="EditPlus?">  <meta name="Author" content="">  <meta na

百度地图API

本文我将从如何使用地图API(本文以百度为例,谷歌类似)开始,往后的扩展行的内容详见后续文章.1.打开链接http://developer.baidu.com/map/jshome.htm  这里有很多DEMO,或者你直接百度搜索“百度地图API”,第一个就是.进入后有很多方向供你选择,由于现在开源的地图API都是JS脚本写的,所以我上面的链接就只针对JAVASCRIPT进行介绍.  即使是编程菜鸟(像我这种),也知道当你在任何一个开发环境下写代码时,都需要加入头文件,例如,你要在C++里使用c