我们可以用textView.setText(Html.fromHtml(text,imageGetter,tagHandler);来加载有img的html文本,imageGetter需要返回drawable对象,那么可以重新ImageGetter,即可。
public class URLImageGetter implements Html.ImageGetter{ private String shopDeString; private TextView textView; Context context; private DisplayImageOptions options; public URLImageGetter(String shopDeString,Context context,TextView textView,DisplayImageOptions options) { this.shopDeString = shopDeString; this.context = context; this.textView = textView; this.options = options; } @Override public Drawable getDrawable(String source) { //解决UIL加载同一个URL图片时,导致下一个task被cancel掉的问题 final URLDrawable urlDrawable = new URLDrawable(); ImageSize imageSize = new ImageSize(480,320); NonViewAware nonViewAware = new NonViewAware(imageSize, ViewScaleType.CROP); ImageLoader.getInstance().displayImage(source,nonViewAware,options,new SimpleImageLoadingListener(){ @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { super.onLoadingComplete(imageUri, view, loadedImage); urlDrawable.bitmap = loadedImage; urlDrawable.setBounds(0, 0, loadedImage.getWidth(), loadedImage.getHeight()); textView.invalidate(); textView.setText(textView.getText()); // 解决图文重叠 } }); return urlDrawable; } }
Demo:Github
如图: