如何实现webview保存网页 上网页能进行自动适应手机屏幕大小

Android 中Webview 自适应屏幕 - 简书
Android 中Webview 自适应屏幕
去掉webview中右下角的缩放按钮
settings.setDisplayZoomControls(false); //隐藏webview缩放按钮
让Webview加载的页面居中显示有我知道的几种方法
第一种方法:
WebSettings settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
LayoutAlgorithm是一个枚举用来控制页面的布局,有三个类型:
1.NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度
2.NORMAL:正常显示不做任何渲染
3.SINGLE_COLUMN:把所有内容放大webview等宽的一列中
用SINGLE_COLUMN类型可以设置页面居中显示,页面可以放大缩小,但这种方法不怎么好,有时候会让你的页面布局走样而且我测了一下,只能显示中间那一块,超出屏幕的部分都不能显示。
第二种方法:
设置加载进来的页面自适应手机屏幕
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
第一个方法设置webview推荐使用的窗口,设置为true。第二个方法是设置webview加载的页面的模式,也设置为true。
这方法可以让你的页面适应手机屏幕的分辨率,完整的显示在屏幕上,可以放大缩小。
两种方法都试过,推荐使用第二种方法
第三种方法:(主要用于平板,针对特定屏幕代码调整分辨率)
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityD
if (mDensity == 120) {
settings.setDefaultZoom(ZoomDensity.CLOSE);
}else if (mDensity == 160) {
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}else if (mDensity == 240) {
settings.setDefaultZoom(ZoomDensity.FAR);
第四种方法
&meta name="viewport"
content="width=device-width,
initial-scale=1.0, minimum-scale=1.0,
maximum-scale=1.0, user-scalable=no"/&
参考: http://www.cnblogs.com/bluestorm/archive//3021996.html 第二种方法: //设置加载进来的页面自适应手机屏幕settings.setUseWideViewPort(true);settings....
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
assets 文件夹下的html访问方式:&file:///android_asset/index.html& 如果要将Web应用程序(或只是网页)作为客户端应用程序的一部分提供,可以使用WebView进行操作。 WebView类是Android的View类的扩展,它允许您...
问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。碰到频率:100%解决方案:CSS里 {margin...
越来越觉得,最好的友情就是不尴尬,最好的原则就是相处不累。
生活中总会有形形色色的人,有的人你会觉得他人其实挺不错的,性格开朗,和其他人谈笑风生,热心又热情,也许你们还玩着同款游戏,偶尔还可以开开黑,可是单独在一起时,你还是觉得无比尴尬,你一直一直的想找话题,可是他却无...
关于报价的问题: 熟悉自己产品的优劣势,相信自己的产品才能有底气。清楚自身与竞品产品的差异化,自身优势在哪。这样自己在谈价的时候才会有底气。 了解客户需求和兴趣点,抓到客户的痛点 客户喜欢产品,才会有谈价的环节,抓住客户痛点,才能在谈价中时刻占领主动权。在谈价进入僵局的时候...
人生风景在游走, 我有在你眼前, 挡住寒冬, 温暖只留给你, 所有的冰天冻地, 都只配给你当成风景线, 让冬天不再冬天, 让你不再是只有你, 让我不再是只有我, 从此我们的天地变多了个人, 彼此温暖的那个人。 当山川不再高耸, 当河水开始倒流, 我希望都有我们的故事, 飘荡...
清风拂藕叶,绿柳拭桥台。细浪叠叠起,苗鱼抖抖来。
最近一直忙于做项目,都没有时间来这里个你们沟通聊天,今天,我想暂时放下手里的事情来跟大家探讨一个话题:关于设计师该如何正确认知自己的价值。 首先,我看到了什么样一个现象呢? 作为设计师,我们总是会去崇拜别人有而自己没有的技能或高度,比如设计师A他画画特别厉害,我们就觉得:哇...Do what you say,say what you do .
WebView设置自适应屏幕大小
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
WebSetting settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
把所有内容放在webview等宽的一列中。(可能会出现页面中链接失效)
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityD
if (mDensity == 120) {
settings.setDefaultZoom(ZoomDensity.CLOSE);
}else if (mDensity == 160) {
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}else if (mDensity == 240) {
settings.setDefaultZoom(ZoomDensity.FAR);
这方法可以让你的页面适应手机屏幕的分辨率,完整的显示在屏幕上,可以放大缩小。 例如适合800px宽度的页面,如果通过WebView在1024px的屏幕宽度下显示时,内容(图片)会被放大,整体页面会超出屏幕。 试了将WebView的settings中的缩放都关闭了也不行。 后来发现了WebSettings.ZoomDensity这个设置,并在文档中找到了以下说明: Enum for specifying the WebView's desired density. FAR makes 100% looking like in 240dpi MEDIUM makes 100% looking like in 160dpi CLOSE makes 100% looking like in
120dpi 这样就能很好的说明以上问题的原因了,又是密度惹的祸... 默认WebView的ZoomDensity是MEDIUM,对应160dpi。而我之前800px宽度的屏幕对应的是60dpi,1024px宽度的屏幕对应的是240dpi。所以,页面在高分辨率的屏幕上被放大了1.5倍。这个和图片自缩放的机制是一样的。 于是,只要通过当前屏幕的密度,动态设置该属性就能适应不同屏幕(当然,默认你的页面是针对160dpi的密度大小设计的),即可解决: int screenDensity = getResources().getDisplayMetrics().densityD
WebSettings.ZoomDensity zoomDensity = WebSettings.ZoomDensity.MEDIUM ;
switch (screenDensity){
case DisplayMetrics.DENSITY_LOW :
zoomDensity = WebSettings.ZoomDensity.CLOSE;
case DisplayMetrics.DENSITY_MEDIUM:
zoomDensity = WebSettings.ZoomDensity.MEDIUM;
case DisplayMetrics.DENSITY_HIGH:
zoomDensity = WebSettings.ZoomDensity.FAR;
webSettings.setDefaultZoom(zoomDensity);
没有更多推荐了,下次自动登录
现在的位置:
& 综合 & 正文
webview网页自适应手机屏幕大小
WebSettings webSettings = webview.getSettings();
webSettings.setSupportZoom(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setBuiltInZoomControls(true);//support zoom
webSettings.setPluginsEnabled(true);//support flash
webSettings.setUseWideViewPort(true);//關鍵點
webSettings.setLoadWithOverviewMode(true);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityD
DebugLog.d(TAG, "densityDpi = " + mDensity);
if (mDensity == 240) {
webSettings.setDefaultZoom(ZoomDensity.FAR);
} else if (mDensity == 160) {
webSettings.setDefaultZoom(ZoomDensity.MEDIUM);
} else if(mDensity == 120) {
webSettings.setDefaultZoom(ZoomDensity.CLOSE);
}else if(mDensity == DisplayMetrics.DENSITY_XHIGH){
webSettings.setDefaultZoom(ZoomDensity.FAR);
}else if (mDensity == DisplayMetrics.DENSITY_TV){
webSettings.setDefaultZoom(ZoomDensity.FAR);
【上篇】【下篇】博客分类:
网上有通行的3中方法
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
WebSetting settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
把所有内容放在webview等宽的一列中。(可能会出现页面中链接失效)
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityD
if (mDensity == 120) {
settings.setDefaultZoom(ZoomDensity.CLOSE);
}else if (mDensity == 160) {
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}else if (mDensity == 240) {
settings.setDefaultZoom(ZoomDensity.FAR);
在我的项目中没办法适用 不过还是找到了方法
webView.setInitialScale(960*100 / MainActivity.screenHeight);
我的网页高度为960 按这个比例拉升 配合
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityD
if (mDensity == 120) {
settings.setDefaultZoom(ZoomDensity.CLOSE);
}else if (mDensity == 160) {
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}else if (mDensity == 240) {
settings.setDefaultZoom(ZoomDensity.FAR);
显示的效果可以接受,一般这样的方式可以解决大多数高度宽度固定的网页显示的问题
浏览: 365046 次
来自: 武汉
文中有个错误,SoftReference是软引用,Strong ...
我每次走到movie.draw(canvas,0, 0);
徐颖慧 写道为什么打不开啊?额 果然打不开了。。
为什么打不开啊?
为什么打不开啊
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'您还可以使用以下方式登录
当前位置:&>&&>&&>& > Android中Webview自适应屏幕
Android中Webview自适应屏幕
第一种:WebSetting settings = webView.getSettings();settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);把所有内容放在webview等宽的一列中。(可能会出现页面中链接失效)第二种:settings.setUseWideViewPort(true);settings.setLoadWithOverviewMode(true);第三种:DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);int mDensity = metrics.densityDif (mDensity == 120) {settings.setDefaultZoom(ZoomDensity.CLOSE);}else if (mDensity == 160) {settings.setDefaultZoom(ZoomDensity.MEDIUM);}else if (mDensity == 240) {settings.setDefaultZoom(ZoomDensity.FAR);}
欢迎转载:
推荐:    }

我要回帖

更多关于 webview网页高度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信