android webview设置自适应任意大小的pc网页 webview自适应setUseWideViewPortsetLayoutAlgorithmwebSettingsandroid webview webSettings.setJavaScriptEnabled(true); // User settings webSettings.setJavaScriptEnabled(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setUseWideViewPort(true);//关键点 webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); webSettings.setDisplayZoomControls(false); webSettings.setJavaScriptEnabled(true); // 设置支持javascript脚本 webSettings.setAllowFileAccess(true); // 允许访问文件 webSettings.setBuiltInZoomControls(true); // 设置显示缩放按钮 webSettings.setSupportZoom(true); // 支持缩放 webSettings.setLoadWithOverviewMode(true); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int mDensity = metrics.densityDpi; Log.d("maomao", "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); }else{ webSettings.setDefaultZoom(ZoomDensity.MEDIUM); } /** * 用WebView显示图片,可使用这个参数 设置网页布局类型: 1、LayoutAlgorithm.NARROW_COLUMNS : * 适应内容大小 2、LayoutAlgorithm.SINGLE_COLUMN:适应屏幕,内容将自动缩放 */ webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); 其中关键是以下设置属性 webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webSettings.setUseWideViewPort(true); 这样的话如果你的PC网页里面没有设置 meta标签 viewport的缩放设置也没有关系。 常用的 viewport meta 如下: 1 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> 1、width : 控制viewport的大小,可以指定一个值,如600, 或者特殊的值,如device-width为设备的宽度(单位为缩放为100%的CSS的像素) 2、height : 和width相对应,指定高度 3、initial-scale : 初始缩放比例,页面第一次加载时的缩放比例 4、maximum-scale : 允许用户缩放到的最大比例,范围从0到10.0 5、minimum-scale : 允许用户缩放到的最小比例,范围从0到10.0 6、user-scalable : 用户是否可以手动缩放,值可以是:①yes、 true允许用户缩放;②no、false不允许用户缩放 更多 meta 及 link 标签用法及说明,请移步我的 gist: https://gist.github.com/Jimco/9524062
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.densityDpi;www.2cto.comif (mDensity == 120) {settings.setDefaultZoom(ZoomDensity.CLOSE);}else if (mDensity == 160) {settings.setDefaultZoom(ZoomDensity.MEDIUM);}else if (mDensity == 240) {settings.setDefaultZoom(ZoomDensity.FAR);}