HtmlText

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"

    + "";

    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

    來源:简书

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

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

  1. Android加载大图片不OutOfMemoryError

    Android加载图片时,对于分辨率小,配置低的机子,很容易发生OutOfMemoryError.手机的内存比图片的大很多,怎么会这样? 在设置Android虚拟机的内存时: RAM:模拟器的内存空间 ...

  2. android 载入svg动画,Android 加载SVG动画

    Android 加载SVG动画 SVG 可以说是目前比较流行的图片格式,使用领域也十分广泛,例如:web 前端页面,Android ios 等移动应用.都可以使用 SVG 的图片格式.今天就要和大家谈 ...

  3. 一招解决Android 加载高清大图

    本文转自:http://blog.csdn.net/lmj623565791/article/details/49300989 最近花时间详细拜读了郭神博客的图片加载系列,感觉收获不少.正好想将自己之 ...

  4. Android 加载本地图片(文件管理器中的图片墙)

    Android 加载本地图片(文件管理器中的图片墙) --关于图片墙的一些感悟与疑问,希望大家共同探讨. (By伊叶也) 图片显示及监听 1.图片显示:基本上就5种显示形式(如果同时嵌入5种形式,采用 ...

  5. Android加载SVG实现交互式地图绘制

    Android加载SVG实现交互式地图绘制 Android加载SVG实现交互式地图绘制 效果图 实现思路 准备工作 具体实现 效果图 实现思路 下载SVG文件 将svg资源转换成相应的java代码 解 ...

  6. Android加载Gif动画android-gif-drawable的使用

    Android加载Gif动画android-gif-drawable的使用 目前支持Gif播放的开源库还是有的,不过经分析: GifView:如果Gif图片太大会导致OOM; SimpleDrawee ...

  7. 关于 android 加载 res 图片 out of memory 问题 解决 同样适用于 sd卡图片

    2019独角兽企业重金招聘Python工程师标准>>> 发现android 加载res图片如果过多也会崩溃 android 也是使用 Bitmap  bm = BitmapFacto ...

  8. Android加载大图片OOM异常解决

    Android加载大图片OOM异常解决 参考文章: (1)Android加载大图片OOM异常解决 (2)https://www.cnblogs.com/jevan/archive/2012/07/05 ...

  9. android如何添加gif,Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)...

     Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1) Android自己的ImageView或者View不能直接加载运行Gif图片,如果要在 ...

  10. Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)【系列1】...

     Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)[系列1] Android在加载或者处理超大巨 ...

最新文章

  1. 深入“肠-脑”神经高速通道,揭开“第六感觉”面纱
  2. python matplotlib模块画出的图像转换为.tiff格式
  3. openCV和Tensorflow起步
  4. spring boot打包文件后,报错\No such file or directory
  5. lintcode:二叉树的层次遍历
  6. 设置mysql为utf-8_如何设置mysql数据库为utf-8编码
  7. asterisk app命令中文翻译
  8. Linux终端界面Screen实现桌面共享
  9. STM32串口驱动(拼音检索测试通过)(环形队列+内存动态分配+DMA)
  10. Python 从入门到放弃(一)
  11. 工业相机——感光元件尺寸介绍
  12. AS 编写 Xposed 插件需要修改的地方
  13. “压缩(zipped)文件夹“G:\Program\Wechat WeChatFiles(wxid cqpx72n77z9x22 FileStorage\File 2022-12 基...
  14. C语言二级指针 (清晰易懂 图解概述)
  15. 网站服务安全访问(HTTPS)
  16. Win10删除微软拼音输入法的方法
  17. NET 里序列化可概念。
  18. 学画画要花多少钱_高二学美术的费用大概是多少 要花多少钱
  19. python tkinter计算器实例_利用Tkinter(python3.6)实现一个简单计算器
  20. 自定义浏览器滚动条的样式,详细讲解

热门文章

  1. python基础字符串(二)
  2. mybatis--properties以及别名定义(四)
  3. java策略模式学习
  4. 数学之贝叶斯分类的理解
  5. 代码 纪录 软件_「软件资料」-「资讯动态」-软件开发类项目关键文档内容要求...
  6. c语言学习-字符串输出
  7. Unity动画系统详解10:子状态机是什么?
  8. OpenShift 4 - 安装 OpenShift 集群后如何删除节点或增加新节点
  9. OpenShift 4 之获取全部CRD用户资源定义对象
  10. OpenShift 4 之进入到集群节点内执行sosreport收集故障信息