Android使用TextView.formHtml显示H5文本和图片
布局
Activity的布局中只有一个标题和TextView。
使用Html.ImageGetter
Html.ImageGetter imgGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
final URLDrawable urlDrawable = new URLDrawable();
Glide.with(BaseHtml.this).asBitmap().load(source).into(new SimpleTarget() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
urlDrawable.bitmap = resource;
urlDrawable.setBounds(0, 0, resource.getWidth(), resource.getHeight());
mTvContent.invalidate();
mTvContent.setText(mTvContent.getText());
}
});
return urlDrawable;
}
};
创建UrlDrawable
public class URLDrawable extends BitmapDrawable {
public Bitmap bitmap;
@Override
public void draw(Canvas canvas) {
if(bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, getPaint());
}
}
}
最终在Activity里使用
mTvContent.setMovementMethod(ScrollingMovementMethod.getInstance());//使TextView可以上下滑动。
mTvContent.setMovementMethod(LinkMovementMethod.getInstance());//点击超链接可以跳转到浏览器。
mTvContent.setText(Html.fromHtml(content(), imgGetter, null));
显示
可以看到企鹅图片显示到了TextView里。
结束
第一次记录,不会BB。