① android webview默认屏幕为中像素密度怎么修改
Android中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。这方法可以让你的页面适应手机屏幕的分辨率,完整的显示在屏幕上,可以放大缩小。
第三种方法:(主要用于平板,针对特定屏幕代码调整分辨率)
java">DisplayMetricsmetrics=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
intmDensity=metrics.densityDpi;
if(mDensity==120){
settings.setDefaultZoom(ZoomDensity.CLOSE);
}elseif(mDensity==160){
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}elseif(mDensity==240){
settings.setDefaultZoom(ZoomDensity.FAR);
}
Android中的webview其实是一个浏览器,对js进行解析以便于在智能机上面很好的显示。
② 如何设置android webview默认为高等像素密度
因为Android下浏览器默认的并不是实际像素,而是中像素密度。(注:Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度),所以要设置android webview默认为高等像素密度的话,需要在js中设置如下代码:
<metacontent='width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,target-densitydpi=device-dpi'name='viewport'>
这里面,target-densitydpi的功能就是指定屏幕像素密度DPI。它的参数有:
device-dpi –使用设备原本的 dpi 作为目标dpi。不会发生默认缩放。
high-dpi – 使用hdpi作为目标dpi。中等像素密度和低像素密度设备相应缩小。
medium-dpi – 使用mdpi作为目标dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。这是默认的target density。
low-dpi -使用mdpi作为目标dpi。中等像素密度和高像素密度设备相应放大。
<value> – 指定一个具体的dpi值作为target dpi。这个值的范围必须在70–400之间。