Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法
来源:互联网 发布:网络英语老师 编辑:程序博客网 时间:2024/06/05 10:38
最近在开发一个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:经测试发现,这个可以作为判断的依据。
如果错误,谢谢大家指出来!
- Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法
- Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- 【Android】禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android屏幕旋转不重新加载布局
- Android 屏幕旋转后防止重新执行onCreate的方法。
- Android 4.0: 旋转屏幕时禁止Activity重新加载
- android屏幕旋转时,禁止重新加载(onCreate)
- Android:屏幕旋转时,禁止Activity重新加载
- ANDROID竖屏,屏幕旋转禁止重新加载activity
- android webview旋转屏幕导致页面重新加载问题
- 禁止屏幕旋转重新加载oncreat
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- Android中使用shape自定义纯色图片总结
- Mysql MERGE引擎分表查询机制
- RSNA、802.1X及4-way handshake的关系
- 邮件开发:Tomcat中JavaMail支持与冲突
- 蓝桥杯 简单加法
- Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法
- android需要尽快掌握的
- 1.UIButton的基本使用
- MySql 存储过程实例(附完整注释)
- 反射2
- ef更新部分字段
- 输出字符串中的所有重复子
- c++智能指针
- java数据结构和算法 栈表队列2