android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。
可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。
不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。
即使是ZoomDensity.setDefaultZoom设置了缩放,但还是会在很多设备无效。经过摸索还需做一些修改:
1,页面head添加
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
2,设置字体也按480基准缩放。
下面是代码:
private void setZoom(WebSettings webSettings) {
int screenDensity = getResources().getDisplayMetrics().densityDpi;
String zd = "FAR";
switch (screenDensity) {
case DisplayMetrics.DENSITY_LOW:
zd = "CLOSE";
break;
case DisplayMetrics.DENSITY_MEDIUM:
zd = "MEDIUM";
break;
}
Class<?> zoomDensityClass = null;
Enum<?> zoomDensity = null;
try {
if (zoomDensityClass == null) {
zoomDensityClass = Class.forName("android.webkit.WebSettings$ZoomDensity");
}
if (zoomDensity == null) {
zoomDensity = (Enum<?>) Enum.valueOf((Class) zoomDensityClass,zd);
}
Method method = WebSettings.class.getDeclaredMethod( "setDefaultZoom", new Class<?>[] { zoomDensityClass });
if(method!=null){
method.invoke(webSettings, zoomDensity);
}
method = WebSettings.class.getDeclaredMethod( "setTextZoom", new Class<?>[] { int.class });
if(method!=null){
method.invoke(webSettings, 100 * getWindowManager().getDefaultDisplay().getWidth() / 480);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
return;
}
}
分享到:
相关推荐
webview 监听页面显示事件,很好用
webview大图片缩放
隐藏WebView的缩放按钮,采用反射机制实现,测试支持2.x,4.X
WebView设置setBuiltInZoomControls(true)后,隐藏缩放按钮的控件在webView的源码里是通过: private ZoomButtonsController mZoomButtonsController; 这个私有控件控制的,而且也没有public方法可以获得此...
移动端Web页面,即常说的H5页面、手机页面、webview页面等
demo webview修改页面字体
在开发中,有时候我们会在app中使用WebView加载一个web页面。这样可以适当减轻我们开发的难度。但是弊端是WebView中切换html,没有像原生页面的切换效果。这里我们就利用动画,以及 获取网页的快照来实现android ...
自己项目开发中使用的,需求是打通App和webview页面两者之间的数据交互 H5调用App的方法(反之App可以使用该页面的方法)
主要为大家详细介绍了Android WebView中图片浏览及缩放效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
做webview加载网页时,遇到一个问题,自带的webview错误页面不美观,于是自定义一个view提示用户,网上很多方法,也不稳定实现替换,结合网上的一些例子,加以优化和拓展,特此写一个完整版本的Demo供大家拿来直接...
android WebView通过Js和设备交互,摇一摇可调用html的Js,通过Js方法也可调用android程序
仿天天动听用WebView实现的引导页面 网页 (Webview)
WebView实现引导页面
以下方法可以成功! @Override public void onClick(View view) { webview.loadUrl(url); webview.loadUrl( [removed][removed].reload( true ) );...webView.setWebViewClient(new WebViewCli
小程序开发中遇到的问题:小程序中嵌套了一个webview页面,webview页面中有静默授权(A1页面静默授权后重定向到A2页面),点小程序原生的返回按钮会返回到A1页面,然后页面就会反复静默授权 预期表现:点小程序原生...
在进行app开发时,我们会经常遇到webview加载一个网址的情况,但是仅仅是webview.loadUrl()并不能满足我们的需求,因为一般网页上面都有一个标题,这个资源是问题的解决方案之一
使用android studio 3.1.2 ,利用webview,实现登录界面。采用本地html 页面
webview显示图片并下载
安卓webView页面基类-BaseWebActivity,有网页加载进度条,有对手机显示网页的配置,有返回上一页等功能。