如何实现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功能有轻微的延迟。
如何实现Html.fromhtml随着Imagegetter在Android中
最新推荐文章于 2021-06-04 09:31:38 发布