有时候我们需要加载一段 HTML 文本,文本中有
标签图片,如商品详情。那么怎么才能更好的显示图片呢,当然是用 UIL 开源库了,那怎么使用呢。这就是本示例想要展示的
方法
textView.setText(Html.fromHtml(text,imageGetter,tagHandler);来加载 html 文本,
imageGetter 需要返回 drawable 对象,那么可以重写 ImageGetter,即可。
URLImageGetter
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;
}
}