您的位置:首页 > 移动开发

Android使用WebView显示网页(图片缩放)

2015-01-15 14:25 633 查看
上周写了一篇关于webview的博文:Android使用WebView显示网页(图片大小的处理及内容的自适应)

后来通过自己想的第三种办法实现了图片的适配,方法是设置html的img标签属性,把图片的宽度设置为设备屏幕的宽度,涉及的知识点就是,获取设备宽度值、java代码 添加/修改 html标签属性。

1. 获取设备屏幕信息:

/**
* 获取设备的屏幕信息
* @param activity
* @return
*/
public static DeviceInfo getDevicesPix(Activity activity) {
DisplayMetrics metric = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metric);
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.width = metric.widthPixels; // 屏幕宽度(像素)
deviceInfo.height = metric.heightPixels; // 屏幕高度(像素)
deviceInfo.density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
deviceInfo.densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)

Log.i(TAG, "deviceInfo.width" + deviceInfo.width);
Log.i(TAG, "deviceInfo.height" + deviceInfo.height);
Log.i(TAG, "deviceInfo.density" + deviceInfo.density);
Log.i(TAG, "deviceInfo.densityDpi" + deviceInfo.densityDpi);

return deviceInfo;
}

html标签中设置图片宽度值的单位是像素pix,所以这里没有转换。
2. jsoup设置html标签属性:

Elements elementImgs = detail.getElementsByTag("img");//获取所有img标签

DeviceInfo deviceInfo = DeviceUtil.getDevicesPix(BlogContentActivity.this);

for (Element img : elementImgs) {
img.attr("width", (int)(deviceInfo.width/deviceInfo.density) + "px");//设置width属性
}
将经过处理的html加载到webview,就可以看到图片是与屏幕同宽,当然如果图片本来的大小小于屏幕宽度,就没必要进行放大了,可以在修改width属性前,先判断一下。

通过webview显示CSDN博文,就剩下一个问题:如何高亮显示代码,且webview的宽度不会因为长代码太长导致体验不好。下一篇博文就解决这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  webview 图片适配