android加载富文本可点击链接,Android富文本解析器,支持网络图片,图片和链接点击事件...

HtmlText

17b347f21857

image

HtmlText 是 android.text.Html 的一个扩展,可以加载 HTML 并将其转换成 Spannable 显示在 TextView 上,支持网络图片,图片加载器无绑定,支持图片和链接点击事件,扩展了更多标签。

该库体积微小,仅有8个类,不需要外部依赖。

Screenshot

[图片上传失败...(image-e3ca7b-1522079821669)]

Supported HTML tags

Tags supported by android.text.Html

,
,
,
,
,

< img src="...">

Extended support by HtmlText

  1. [HTML contains two newline, there is one]

    [extend support size]

    < img src="..." width="..." height="...">[extend support width, height]

    Usage

    Gradle

    Step 1. Add the JitPack repository to your build file

    Add it in your root build.gradle at the end of repositories:

    allprojects {

    repositories {

    ...

    maven { url 'https://jitpack.io' }

    }

    }

    Step 2. Add the dependency

    dependencies {

    compile 'com.github.wangchenyan:HtmlText:1.0'

    }

    Sample

    TextView textView = (TextView) findViewById(R.id.text);

    textView.setMovementMethod(LinkMovementMethod.getInstance());

    String sample = "

    Hello wold

    "

    + "Font size"

    + "www.sample.com%5C%22";

    HtmlText.from(sample)

    .setImageLoader(new HtmlImageLoader() {

    @Override

    public void loadImage(String url, final Callback callback) {

    // Glide sample, you can also use other image loader

    Glide.with(context)

    .load(url)

    .asBitmap()

    .into(new SimpleTarget() {

    @Override

    public void onResourceReady(Bitmap resource,

    GlideAnimation super Bitmap> glideAnimation) {

    callback.onLoadComplete(resource);

    }

    @Override

    public void onLoadFailed(Exception e, Drawable errorDrawable) {

    callback.onLoadFailed();

    }

    });

    }

    @Override

    public Drawable getDefaultDrawable() {

    return ContextCompat.getDrawable(context, R.drawable.image_placeholder_loading);

    }

    @Override

    public Drawable getErrorDrawable() {

    return ContextCompat.getDrawable(context, R.drawable.image_placeholder_fail);

    }

    @Override

    public int getMaxWidth() {

    return getTextWidth();

    }

    @Override

    public boolean fitWidth() {

    return false;

    }

    })

    .setOnTagClickListener(new OnTagClickListener() {

    @Override

    public void onImageClick(Context context, List imageUrlList, int position) {

    // image click

    }

    @Override

    public void onLinkClick(Context context, String url) {

    // link click

    }

    })

    .into(textView);

    Thanks

    作者:ChayWong

    链接:https://www.jianshu.com/p/4d2d04b3889f

    來源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值