WebSettings webSettings = view.getSettings();
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不允許用戶縮放