两种情况一起使用 实现 不同分辨率 不同 dpi 缩放自适应处理

//webview 需要配置
mWebView.getWebSetting().setUseWideViewPort(true);//让webview读取网页设置的viewport,pc版网页

1、同分辨率 不同dpi 缩放自适应处理 ( 也可以在android端 注入相关js 代码)

<script type="text/javascript">
<!-- 针对 Android 【不同 dpi】 适配处理 同分辨率 不同 dpi 显示一致 -->
var ua = navigator.userAgent;
if (/Android (\d+\.\d+)/.test(ua)){
<!-- 需要在页面加载时候 生效 才能有效 -->
var devicePixelRatio = window.devicePixelRatio;
var deviceScale = 1/devicePixelRatio;
document.write('<meta name="viewport" content="width=device-width,initial-scale='+deviceScale+',minimum-scale='+deviceScale+',maximum-scale='+deviceScale+',user-scalable=no">');
}
</script>

2、同dpi 不同分辨率 缩放自适应处理

   @Override
public void onPageFinished(WebView webView, String url) {
super.onPageFinished(webView, url); /**
* 针对 web 页面 【不同分辨率】 适配处理 同dpi 不同分辨率 显示一致
* zoom = 100% 分辨率 1920 * 1080 Ui设置设计出来合适的 也是body标签默认未设置zoom属性的或者100% 例子 <body style="zoom: 50%;">
* zoom = 66.67% 分辨率 1280 * 720
* zoom = 71.14% 分辨率 1366 * 768
* zoom = 106.67% 分辨率 2048 * 1152
* zoom = 83.33% 分辨率 1600 * 900
* zoom = 50% 分辨率 960 * 540
*/
float widthPixels = getResources().getDisplayMetrics().widthPixels;
float heightPixels = getResources().getDisplayMetrics().heightPixels;
Log.d("zfq", "widthPixels:" + widthPixels);
Log.d("zfq", "heightPixels:" + heightPixels);
float zoomPercent = widthPixels / 1920 * 100;
Log.d("zfq", "zoomPercent:" + zoomPercent);
String javaScriptInterfaceName_zoomWeb_NeedInjectJsStr =
"javascript:(function(){ document.body.style.zoom='" + zoomPercent + "%'; })()";
mWebView.loadUrl(javaScriptInterfaceName_zoomWeb_NeedInjectJsStr);
}

Android WebView 加载 html页面 实现 不同分辨率 不同 dpi 缩放自适应处理 解决方案的更多相关文章

  1. Android WebView加载本地html并实现Java与JS交互

    最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...

  2. 转:Android Webview 加载外部html时选择加载本地的js,css等资源文件

    原文地址:http://m.blog.csdn.net/blog/qduningning/43196819 在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片 ...

  3. Android WebView 加载网页

    通过Android 中 WebView 控件加载HTML5 页面,这是实现Android 混合开发的基础. 选择加载的网页可以是本地,也可用使远程的.需要添加访问互联网的权限:<uses-per ...

  4. Android WebView 加载富文本内容

    WebView加载数据的方式有两种: 1. webView.loadUrl(data);//加载url 2. webView.loadDataWithBaseURL(null,data, " ...

  5. Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决

    Android中经常会使用到WebView来加载H5的页面,如果H5页面中有音频或者视频的播放时,还没播放完就退出界面,这个时候会发现音频或者视频还在后台播放,这就有点一脸懵逼了,下面是解决方案: 方 ...

  6. android webview 加载本地html 实现 与 java 之间的相互响应

    1.布局 <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:androi ...

  7. android webview加载网络连接

    webview = (WebView) findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); //设 ...

  8. Android WebView 加载超长 JS 数据

    在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 —— Android WebView 总结 —— Java和JavaScript交互. 基于这篇文章,我们基本上能 ...

  9. webview加载本地页面

    main.xml中布局webview,activity中设置如下 MyWebView=(WebView)findViewById(R.id.webView1); MyWebView.requestFo ...

  10. Android webView加载图片显示过大的问题

    webview的基本使用流程这里我就不重复说明了,本篇针对的是文章详情加载完成后出现的情况,这里我们使用的方法是:通过js脚本,重置img标签中图片的宽度和高度. 使用步骤: 1.此方法需要使用js, ...

随机推荐

  1. Linux信号量(1)-SYSTEM V

    ​ 信号量概念 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送 ...

  2. 可以调用Null的实例方法吗?

    前几天有个网友问我一个问题:调用实例方法的时候为什么目标对象不能为Null.看似一个简单的问题,还真不是一句话就能说清楚的.而且这个结论也不对,当我们调用定义在某个类型的实例时,目标对象其实可以为Nu ...

  3. hacs安装

    安装 HACS 直接使用 Docker 的可视化管理面板 Portainer 或者通过命令行进入 Docker 容器,然后执行以下安装命令: docker exec -it <容器名称或容器ID ...

  4. C primer plus笔记之初识C语言

    初识C语言 --本文参考书籍:         Stephen Prata的<C Primer Plus> 前言 C 语言是一门抽象的.面向过程的语言,C 语言广泛应用于底层开发,C 语言 ...

  5. sicp每日一题[1.40]

    Exercise 1.40 Define a procedure cubic that can be used together with the newtons-method procedure i ...

  6. Angular 18+ 高级教程 – Naming Conversion

    前言 命名规范对项目维护是很重要的. Angular 对项目的渗透很大的, 必须做好命名规范, 不然会很乱. InjectionToken InjectionToken = UPPER_SNAKE_C ...

  7. [USACO1.5] 八皇后 Checker Challenge 题解

    [USACO1.5] 八皇后 Checker Challenge 题目描述 一个如下的 \(6 \times 6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括 ...

  8. Web刷题之polarctf靶场(2)

    1.蜜雪冰城吉警店 点开靶场, 发现题目说点到隐藏奶茶(也就是第九杯)就给flag, 但是明显就只有八杯, 猜测大概率考的是前端代码修改 把id=1修改为id=9, 然后回到页面点击原味奶茶即可弹出f ...

  9. .NET 开源 EF Core 批处理扩展工具,真好用

    前言 Entity Framework Core(EF Core)作为 .NET 生态系统中受欢迎的对象关系映射器(ORM),其轻量级.可扩展性和支持多个数据库引擎而备受青睐. 本文将介绍一款.NET ...

  10. 搜广推算法校招面试:BOSS直聘 推荐搜索系统工程师

      本文介绍2024届秋招中,BOSS直聘的推荐/搜索系统工程师岗位一面的面试基本情况.提问问题等.   2023年12月,赶在秋招的末尾,投递了BOSS直聘的推荐/搜索系统工程师岗位,并不清楚所在的 ...