码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-01-15 16:13:19      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:webview   图片适配   

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




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

标签:webview   图片适配   

原文地址:http://blog.csdn.net/brian512/article/details/42740897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!