fromHtml还有另一个重构: fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 而 ImageGetter imgGetter = new Html.ImageGetter() { @Override public Drawable
2 、Spanned android.text.Html.fromHtml(String source, ImageGetter imageGetter, TagHandler tagHandler) source: 需处理的html文本 imageGetter :对图片处理(处理html中的图片标签) tagHandler :对标签进行处理(相当于自定义的标签处理,在这里面可以处理自定义的标签) 也就是说 ,在这里面可以处理自定义的标签) source是html文本这个不用说了,第二个参数imageGetter 负责图片的加载,tagHandler 是在加载时获取各标签。 想到这里,图片加载使用自定义ImageGetter就可以了啊,于是乎: 1、 创建图片请求工具方法: html标签中的图片全是在img标签中,而且都是图片链接,所以简单写一方法来实现加载网络图片: ? 这样就好办了, 在TagHandler中计算img标签的个数,在ImageGetter中等加载图片个数全部完成时,再次刷新界面(重新调用setText方法)。 ? ?
精美礼品等你拿!
tv_one.setText(Html.fromHtml(text1)); 因为有图片,我们要获取图片源,所以上面的那句不行; 所以如下: CharSequence text=Html.fromHtml(html, new ImageGetter () {中间省略}, null); new ImageGetter() {中间省略}这部分比较复杂,看实例代码吧,实质就是取到R文件中图片对应的ID * 3、将CharSequence字符串序列的文本text android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Html; import android.text.Html.ImageGetter 'image5'/ "; //第二步,告诉TextView控件这是html,并且获取文本中的图片源 CharSequence text=Html.fromHtml(html, new ImageGetter
Android官方给我们提供的Html类下面的fromHtml方法 当你需要转换的HTML代码是带图片的,比如,那么你就需要使用到重载的第二个方法了,这个方法里面有个ImageGetter对象 android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Html; import android.text.Html.ImageGetter ; CharSequence charSequence = Html.fromHtml(html, new ImageGetter() { @
+ "<img src='" + R.drawable.apple + "' "; mTextView02.setText(Html.fromHtml(htmlFor02, new Html.ImageGetter drawable.getIntrinsicHeight()); return drawable; } }, null)); 可以看到,ic_launcher和apple这两张图片的ID是加到了img标签中,然后通过实现html的ImageGetter NetWorkImageGetter mNetWorkImageGetter = new NetWorkImageGetter(); class NetWorkImageGetter implements Html.ImageGetter { /* * (non-Javadoc) * @see android.text.Html.ImageGetter#getDrawable(java.lang.String) */
com.bumptech.glide.request.transition.Transition; import com.fun.ex.app.util.ScreenUtils; public class ImageGetter implements Html.ImageGetter { private Context context; private TextView textView; ImageGetter
Html.ImageGetter 和 Html.TagHandler 是两个接口,提供给开发者继承使用。 imageGetter, 如果要显示图片是需要被继承的,重写 getDrawable(String source)方法,用于获取 HTML 里面的图片来显示在 TextView 中。 继承ImageGetter 继承于 ImageGetter,重写 getDrawable (String source) 方法。通过异步操作,读取本地/网络资源,获得drawable对象。
解析src属性值的工作需要在ImageGetter对象的getDrawable方法中完成。 ImageGetter是个接口。使用过Html.fromHtml方法的如下重载形式会比较熟悉它。 public static Spanned fromHtml(String source,ImageGetter imageGetter ,TagHandler tagHandler); fromHtml 方法有如下三个参数: source:包含Html标签的字符串 imageGetter:ImageGetter对象。 当系统解析到img标签时就是调用ImageGetter对象的getDrawable方法,并将src属性传入getDrawable方法中。
public static Drawable getUrlDrawable(String source, TextView mTextView) { GlideImageGetter imageGetter = new GlideImageGetter(mTextView.getContext(),mTextView); return imageGetter.getDrawable(source
android.graphics.Color; import android.graphics.drawable.Drawable; import android.text.Html; import android.text.Html.ImageGetter >图像5"; CharSequence charSequence2= Html.fromHtml(html2,new ImageGetter
android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Html; import android.text.Html.ImageGetter
static Spanned fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 从Html
String html = ""; CharSequence charSequence = Html.fromHtml(html, new ImageGetter
", new Html.ImageGetter() { @Override public }, null)) .setPositiveButton( Html.fromHtml("确定", new Html.ImageGetter null), null) .setNegativeButton( Html.fromHtml("取消", new Html.ImageGetter
扫码关注腾讯云开发者
领取腾讯云代金券