Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法
2017-10-20 11:02
3463 查看
转载: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:经测试发现,这个可以作为判断的依据。
如果错误,谢谢大家指出来!
最近在开发一个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旋转屏幕导致页面重新加载问题
- Android webview旋转屏幕导致页面重新加载问题解决办法
- 【Android】禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android:屏幕旋转时,禁止Activity重新加载
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android 4.0: 旋转屏幕时禁止Activity重新加载
- android屏幕旋转时,禁止重新加载(onCreate)
- android webview加载URL 自适应屏幕
- android使用WebView加载图片(URl)自适应屏幕
- Android WebView的使用(禁止超链接调用其他浏览器 设置滚动条 禁止横竖屏切换重新加载网页 )
- 【Android Studio】防止切换屏幕方向时webview重新加载url
- Android禁止屏幕旋转,旋转屏幕时不重新加载当前activity
- Android的webview加载本地html、本apk内html和远程URL
- Android使用WebView加载文字总结之中文乱码、禁止横向滚动、自动换行
- Android获取webView快照与屏幕截屏的方法
- android屏幕旋转时,Activity不重新调用onCreate的方法
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
- Android的webview加载本地html、assert内html和网络URL
- Android webView 中loadData方法加载 带中文时出现乱码