//在加载页面时显示出整个网页内容

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方面必须有:

1 <meta name="viewport" content="width=1280, initial-scale=1.0,maximum-scale=2.0, minimum-scale=0.5, user-scalable=no,target-densitydpi=device-dpi" />

其中,target-densitydpi 是最重要的,它将配合android端的以下代码使用。

1         //use html5 viewport attribute
2         settings.setLoadWithOverviewMode(true);
3         settings.setUseWideViewPort(true);

表示我们的代码支持html5网页自适应。所谓杀什么畜生用什么刀,网页的事情,dpi适应什么的,就交给html5去做好了 = =,不用我们在更外面一层蛋疼。

这样做之后,1280宽的图片无论在什么设备的分辨率都是正常的尺寸,不会被做倍数不明的拉伸,方便我们控制。

android webView加载页面时显示出全部网页内容相关推荐

  1. android 双 webview,Android webview加载页面

    释放双眼,带上耳机,听听看~! Android webview加载页面 private WebView webView; public void init() { webView = (WebView ...

  2. 关于WebView加载URL时显示一片空白的问题

    问题: 当用WebView加载URL时,WebView只是显示一片空白,而没有正常加载所需要的内容: 1>布局文件: <RelativeLayout xmlns:android=" ...

  3. android webview 加载图片一直显示正在加载中

    今天无意间发现自己的项目WebView加载时,没有调用到onPageFinished,部分图片一直显示加载中,找了老久不知道出现什么问题~~~ 无奈之下拿出老版本测试,发现加载很正常,只好把代码拿出来 ...

  4. Android webview加载页面获取摄像头权限实践(Kotlin)

    场景介绍: Android app中的webview加载含摄像头相关逻辑的H5页面,进行赋权的操作 H5页面调取摄像头逻辑: vue编写 <template><div>< ...

  5. Android:WebView加载url网页显示不完整解决办法

    WebView基本用法 如果想要在APP里面加载url网页,或者html代码,首先我们会想到WebView,它的基本用法如下: webview_layout.xml <?xml version= ...

  6. Android WebView 加载网页只显示空白页不显示网页

    Android 在使用WebView控件将网页嵌入应用的时候有时会遇到页面显示不出来或者显示为空白页的情况 我在项目中也遇到了这个问题 , 尝试了很多方法都没有解决问题 ,最终找到了解决方法: Web ...

  7. Android webview 加载https网页显示空白

    http://www.2cto.com/kf/201110/108836.html 这个网址讲的不错. 设置webview支持https的方法: webView.setWebViewClient(ne ...

  8. edge浏览器加载页面时显示此站点的连接不安全解决方法

    亲测全网唯一有效方法! 打开浏览器设置,在隐私.搜索和服务选项中找到清除浏览数据,之后重启浏览器便可以完美解决.

  9. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...

    本文将带你了解Android应用开发Android  WebView加载图片显示过大的处理教程(代码教程),希望本文对大家学Android有所帮助. Webview加载图片时,经常会遇到图片显示不符合 ...

  10. android webview 加载进度和自定义404错误页面

    原帖地址:http://www.cnblogs.com/winxiang/archive/2012/10/25/2738320.html 自定义404页面.android的webview 控件可以加载 ...

最新文章

  1. 华为麒麟810芯片鸿蒙,华为自研麒麟810实体芯片首曝光 传说中的“鸿蒙”要来了?...
  2. CPU分时、中断和上下文切换
  3. 由于找不到openni2_Kinect开发教程八:OpenNI2显示深度、彩色及融合图像
  4. android socket第三方库,OkSocket 一个Android轻量级Socket通讯框架
  5. Python学习笔记(未完)
  6. 图像测试环境软件,Digimizer(图像测量分析软件)
  7. 自动化测试用例设计方法
  8. 基于STM32F1的HMC5883L电子罗盘驱动——妈妈从此再也不担心我迷路了
  9. SpringBoot整合腾讯云短信服务实现发送短信功能(一篇就够了)
  10. 微支付开发(.net)
  11. 数据结构之leetcode 347题
  12. php添加商品和显示商品的业务逻辑
  13. bcc服务器搭建网站,如何用云服务器bcc建站
  14. HAL库版STM32双轮自平衡车(五) ———— 调参
  15. Comet OJ 2019 夏季欢乐赛题解
  16. 基于Singer混沌映射的麻雀搜索算法-附代码
  17. Mysql报表统计常用sql
  18. 巨坑:数据库查询有结果,而对应的实体类个别为null
  19. 终结刻录CD与原版CD音质差别之争!以及设备盘片对刻录音质的影响!(转载)...
  20. POI-5.2.2 操作Word【单元格、行、列】

热门文章

  1. MySQL查看锁及事务隔离级别的命令
  2. 产业驱动消费升级 百果园获品途 2018“商业变革影响力”奖
  3. 超详细教程:YOLO_V3(yolov3)训练自己的数据
  4. codeforces-1734C - Removing Smallest Multiples
  5. win10电脑连上wifi,后没有网络
  6. 红米手机如何抓取蓝牙log。
  7. QT - 小型翻车现场
  8. Python爬虫:英雄联盟近期战绩查询
  9. Python | NumPy | 3D 数据可视化 - 散点图
  10. Java:Stream三部曲(三):Stream流处理器