webview中如何让图片自适应

      在webview中要对图片进行自适应就需要对图片在网页中的css样式进行调整。一种方法是在加载完网页后在onPageFinish中用js调用对图片样式进行调整,这种方法是在网页加载完再调整图片样式进行二次渲染,所以会有一个短暂延时,可以看到明显的页面闪烁变化。另外一种方法是在加载网页前对网页图片样式进行修改调整,然后再用loadDataWithBaseURL加载网页,这种方法不会有二次渲染而导致的页面闪烁。

下面是用第二种方法对图片处理的一种方案。调整图片的思路是如果图片大小超过了屏幕大小就按屏幕宽度来适配,如果未超过则按原图显示。修改图片样式需要用jsoup获取图片元素信息并做修改。

 处理方法如下:

               

//获取图片大小              
    public BitmapFactory.Options getImageInfo(String imgPath) {
		BitmapFactory.Options options = new BitmapFactory.Options();
		options.inJustDecodeBounds = true;
		Bitmap bmp = BitmapFactory.decodeFile(imgPath, options);	
		return options;
	}
	
	//调整网页中图片的样式
	public String resetImageSize(String htmlContent, Context context) {
		
		Document doc = Jsoup.parse(htmlContent);
		Elements imgs = doc.getElementsByTag("img");
		if (imgs.size() != 0) {
		    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
		    int width = wm.getDefaultDisplay().getWidth();
		    int height = wm.getDefaultDisplay().getHeight();
		    float density = context.getApplicationContext().getResources().getDisplayMetrics().density;
		       
		    String ba
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值