如何实现Html.fromhtml随着Imagegetter在Android中

如何实现Html.fromhtml随着Imagegetter在Android中   你有一个Android应用程序,要在一个TextView显示从网上刚刚取出的HTML内容。我们要做的第一件事就是用Html.fromHtml()方法;不过,你很快就会意识到,这种方法取代所有图像的通用占位符(除了不支持所有HTML标签)。好消息是,这种方法确实处理图像的支持方式(和其他标签,但本教程只是为了图像)。   实现一个ImageGetter是直的,简单;你传递一个ImageGetter对象被使用来获取以后将用来填充占位符图像。为了获取图像ImageGetter对象必须实现getDrawable方法。该getDrawable方法必须返回可绘制对象,将填补占位符;但是,如果返回null,则通用的图像占位符将被使用(见下文实施)。   的String = Html.fromHtml(htmlContent,新ImageGetter(){   @Override   市民可绘制getDrawable(字符串源)   {   返回null;   }   }   ,NULL);   实现一个ImageGetter是直的,简单;你传递一个ImageGetter对象被使用来获取图像。您获取的图像会根据您的应用需求各不相同的方式;所以在这个例子中,我会直接获取图像的InputStream对象(有时是最好的方式,可以将它们保存到一个文件夹在SD卡)。   获取方法   公众​​的InputStream imageFetch(字符串源)抛出MalformedURLException异常,IOException异常{   网址URL =新的URL(源);   对象O = url.getContent();   的InputStream含量=(InputStream中)O;   //加延时这里(见末注释)   返回的内容;   }   完全实现的方法   的String = Html.fromHtml(htmlContent,新ImageGetter(){   @Override   市民可绘制getDrawable(字符串源){   绘制对象D = NULL;   尝试{   的InputStream SRC = imageFetch(源);   D = Drawable.createFromStream(SRC,“SRC”);   如果(D!= NULL){   d.setBounds(0,0,(d.getIntrinsicWidth()   d.getIntrinsicHeight());   }   }赶上(MalformedURLException异常E){   e.printStackTrace();   }赶上(IOException异常E){   e.printStackTrace();   }   回天;   }   },NULL);   TextView的T =(TextView的)findViewById(R.id.textOutput);   t.setText(S);   有一点要考虑的是大的图片,可能需要更多的时间来下载,以便根据您的应用程序可能无法加载的所有图像的连接。有人解决此通过保存在SD卡上的图像;不过,我已经(在返回之前的内容右)得到了解决此问题通过运行这个方法异步,同时把对imageFetch功能有轻微的延迟。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值