android webview設定自適應任意大小的pc網頁
阿新 • • 發佈:2019-01-09
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不允許使用者縮放