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

来源:互联网 发布:淘宝联盟修改导购名称 编辑:程序博客网 时间:2024/05/21 18:37

上周写了一篇关于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的宽度不会因为长代码太长导致体验不好。下一篇博文就解决这个问题。




1 0
原创粉丝点击