android webView加载页面时显示出全部网页内容
来源:互联网 发布:环境变量是啥 知乎 编辑:程序博客网 时间:2024/05/16 19:04
//在加载页面时显示出整个网页内容
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
//出现放大缩小的按钮功能
webView.getSettings().setBuiltInZoomControls(true);//
webView.getSettings().setSupportZoom(true);
//初始缩放比例
settings.setUseWideViewPort(true); // 是否支持任意比例缩放
wv_showHTML.setInitialScale(60);
主要是关于webview打开网页后的屏幕适应问题。
首先贴一段网上流传的代码:
//Support different screens
4 int screenDensity = mMyActivity.getResources().getDisplayMetrics().densityDpi;
5 switch (screenDensity){
6 case DisplayMetrics.DENSITY_LOW :
7 mWebView.getSettings().setDefaultZoom(ZoomDensity.CLOSE);
8 break;
9 case DisplayMetrics.DENSITY_MEDIUM:
10 mWebView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM);
11 break;
12 case DisplayMetrics.DENSITY_HIGH:
13 mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);
14 break ;
15 case DisplayMetrics.DENSITY_XHIGH:
16 mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);
17 break ;
18 case DisplayMetrics.DENSITY_TV:
19 mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);
20 break ;
21 }
这段代码的不靠谱之处在于:
1.明明case下有五种dpi,android库却只提供close,medium,far三个缩放因子(分别对应LOW,MEDIUM,HIGH,默认是MEDIUM),即便当dpi达到XHIGH(既320DPI)时,也只能设置far,显然是不正常的。
2.实际设备的实际dpi无法获取,因为无法得知设备的物理英寸,上面方法得到dpi值仅是个近似值。
如果单纯用上面的代码做屏幕缩放,对于一些机型肯定是不正常,并且无法估计长宽,比如一张1280宽的图片在实际dpi为X(X > 240 且 x < 320),分辨率为1280的设备上,有可能会被放大1.25倍,或是1.5倍。
如果想要得到正常的倍率,是需要配合网页端的。(这里仅讨论html5的场合,跨平台嘛)
个人认为,由网页方面写死一个宽,再提供一个js的缩放函数(包括图片,字体),根据不同设备的分辨率来调用,是比较理想的。(当然,也可以用穷举法,一个分辨率进一个网页,用不同css和不同大小资源 =_=!)
假设宽定位1280,则html5方面必须有:
其中,target-densitydpi是最重要的,它将配合android端的以下代码使用。
2 settings.setLoadWithOverviewMode(true);
3 settings.setUseWideViewPort(true);
表示我们的代码支持html5网页自适应。所谓杀什么畜生用什么刀,网页的事情,dpi适应什么的,就交给html5去做好了 = =,不用我们在更外面一层蛋疼。
这样做之后,1280宽的图片无论在什么设备的分辨率都是正常的尺寸,不会被做倍数不明的拉伸,方便我们控制。
- android webView加载页面时显示出全部网页内容
- android webView加载页面时显示出全部网页内容
- Android WebView 不能加载出全部网页
- WebView android 内容没有全部显示
- Android webview加载https网页时http图片无法显示
- android中WebView加载网页居中显示
- Android显示webview加载的网页源码
- Android webview 加载https网页显示空白
- android中WebView加载网页居中显示
- Android webview 加载https网页显示空白
- Android WebView 加载网页只显示空白页
- Android webview里加载显示网页
- android中WebView加载网页居中显示
- Android webview 加载https网页显示空白
- Android WebView 加载网页只显示空白页不显示网页
- android WebView加载不出网页内容This request has been blocked; the content must be served over HTTPS.
- android WebView加载不出网页内容This request has been blocked; the content must be served over HTTPS.
- 对于android WebView加载不出Html5网页的解决方法
- android LockPattern手势解锁
- 齐次坐标的意义
- 浅谈C++多态性-----重载,覆盖,隐藏
- 数据挖掘学习【02】——数据
- net程序员应该掌握的常用类库
- android webView加载页面时显示出全部网页内容
- Java环境变量+Tomcat+测试页
- opencv编译
- C++的调试方法
- 设计模式学习日志二:工厂方法模式 (原文转载)
- 女孩乱穿马路撞电动车致车主摔残 被索赔15万
- DELPHI里byte型数组取值与比较
- 关灯游戏
- Cocos2d-x 3.0 打造一个全平台概念目录