Android WebView 加载 html页面 实现 不同分辨率 不同 dpi 缩放自适应处理 解决方案
两种情况一起使用 实现 不同分辨率 不同 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 缩放自适应处理 解决方案的更多相关文章
- Android WebView加载本地html并实现Java与JS交互
最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...
- 转:Android Webview 加载外部html时选择加载本地的js,css等资源文件
原文地址:http://m.blog.csdn.net/blog/qduningning/43196819 在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片 ...
- Android WebView 加载网页
通过Android 中 WebView 控件加载HTML5 页面,这是实现Android 混合开发的基础. 选择加载的网页可以是本地,也可用使远程的.需要添加访问互联网的权限:<uses-per ...
- Android WebView 加载富文本内容
WebView加载数据的方式有两种: 1. webView.loadUrl(data);//加载url 2. webView.loadDataWithBaseURL(null,data, " ...
- Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决
Android中经常会使用到WebView来加载H5的页面,如果H5页面中有音频或者视频的播放时,还没播放完就退出界面,这个时候会发现音频或者视频还在后台播放,这就有点一脸懵逼了,下面是解决方案: 方 ...
- android webview 加载本地html 实现 与 java 之间的相互响应
1.布局 <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:androi ...
- android webview加载网络连接
webview = (WebView) findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); //设 ...
- Android WebView 加载超长 JS 数据
在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 —— Android WebView 总结 —— Java和JavaScript交互. 基于这篇文章,我们基本上能 ...
- webview加载本地页面
main.xml中布局webview,activity中设置如下 MyWebView=(WebView)findViewById(R.id.webView1); MyWebView.requestFo ...
- Android webView加载图片显示过大的问题
webview的基本使用流程这里我就不重复说明了,本篇针对的是文章详情加载完成后出现的情况,这里我们使用的方法是:通过js脚本,重置img标签中图片的宽度和高度. 使用步骤: 1.此方法需要使用js, ...
随机推荐
- ubuntu 16.04 安装Python3.8虚拟环境
virtualenv为应用提供了隔离的Python运行环境,可以解决不同应用间多版本的冲突问题. virtualenv会把用户指定版本的python复制到虚拟环境下,并修改相关的环境变量,使得pyth ...
- 线性dp:编辑距离
编辑距离 本题与力扣72.编辑距离题意一样,阅读完本文可以尝试leetcode72. 力扣题目链接 题目叙述 输入两个字符串a,b.输出从字符串a修改到字符串b时的编辑距离 输入 NOTV LOVER ...
- CSEC:香港城市大学提出SOTA曝光矫正算法 | CVPR 2024
在光照条件不佳下捕获的图像可能同时包含过曝和欠曝.目前的方法主要集中在调整图像亮度上,这可能会加剧欠曝区域的色调失真,并且无法恢复过曝区域的准确颜色.论文提出通过学习估计和校正这种色调偏移,来增强既有 ...
- Node.js 使用
创建 Node 项目 npm init -y # 初始化 Node 项目 package.json 文件 这个文件记录了项目的相关信息. { "name": "hello ...
- Clion+OpenCV(C++版)开发环境配置教程WinMac
Clion+OpenCV(C++版)开发环境配置教程Win/Mac 平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的O ...
- C语言浮点数转字符串实现函数
C语言浮点数转字符串可用库函数sprintf,此处为编写的简单函数. 小数部分最多显示六位. pOut:输出字符串缓冲区 f:浮点数值 isize:输出字符串缓冲区大小 char * Funftoa( ...
- 【YashanDB数据库】Ubuntu系统加载Yashan C驱动后无法使用PHP
[问题分类]驱动使用 [关键字]驱动使用.PHP.Ubuntu.C驱动 [问题描述] 客户将YashanDB的C驱动lib加载到环境变量LD_LIBRARY_PATH后,PHP报错:PHP Fatal ...
- 数据结构 - 关键路径(AOE)
数据结构 - 关键路径求解
- InfoTS: 具有信息感知增强的时间序列对比学习《Time Series Contrastive Learning with Information-Aware Augmentations》(对比学习、信息感知增强、高保真、多样性、信息论-信息瓶颈、元学习器)(没看懂,还需要再回顾)
现在是2024年5月23日,14:30,开始看论文. 论文:Time Series Contrastive Learning with Information-Aware Augmentations ...
- 使用 `Roslyn` 分析器和修复器 对异步方法规范化返回Async结尾
之前写过一篇使用修复器帮助添加头部注释文本的功能,今天使用Roslyn的代码修复器对异步返回方法规范化的功能 实现分析器 首先需要实现分析器,使用RegisterSyntaxNodeAction,分析 ...