Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法

转载:http://blog.csdn.net/ningranzuozuo/article/details/50474386

最近在开发一个web app,发现横屏后,URL会重新加载,体验很不好。

需要更改AndroidManifest.xml文件,在需要禁止重新加载的Activity中增加android:configChanges="orientation|keyboardHidden|navigation"。但在手机上测试发现,并没有效果,原来,该设置在android4.0及以上的版本中无效,需要另外一个属性:"screenSize",改成android:configChanges="orientation|keyboardHidden|screenSize"。

configChanges属性的含义及横竖屏切换Activity的生命周期变化请见:http://my.oschina.net/u/242041/blog/203006

但考虑html页面在手机上横屏后,会出现显示不全的情况,所以就想要禁止手机上横屏,pad上支持横屏。首先想到的是,如何获取屏幕尺寸,参考:http://blog.csdn.net/lincyang/article/details/42679589,该篇文章介绍的很详细。但实际上,5.5英寸的魅蓝note(分辨率为1920*1080),读出来的值只有4.5英寸,所以该方法理论上是对的,但实际上,会存在出入。查中关村魅蓝note的参数(官网并没有),实际ppi为401,根据该ppi,计算出来的值就是5.5英寸。但并没有办法获取到该ppi,根据http://www.zhihu.com/question/23795304的介绍,实际厂商设置dpi时会尽量设置成80的倍数,所以401换算成80的倍数就是实际Android接口获取到的值:480。

现在已经无法通过计算屏幕尺寸来判断是手机或者平板,那么就要换种思路。

根据http://www.jb51.net/article/49410.htm的介绍,有如下几种方法

1、设备尺寸、DPI:根据上文介绍,会出现问题,所以不推荐;

2、版本号:原本3.x的版本是属于平板的,但到了4.x、5.x的时代,这已经无法作为判断的依据了,所以也不推荐;

3、是否具备电话功能:现在能够通话的平板多着呢,所以也不推荐;

4、Configuration的screenLayout:经测试发现,这个可以作为判断的依据。


如果错误,谢谢大家指出来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值