RichText新闻中textview直接设置文字图片富文本

转自http://blog.csdn.net/stephen2wong/article/details/72235930

RichText

Android平台下的富文本解析器

  • 流式操作
  • 低侵入性
  • 支持Html和Markdown格式文本
  • 支持图片点击和长按事件
  • 链接点击事件和长按事件
  • 支持设置加载中和加载错误时的图片
  • 支持自定义超链接的点击回调
  • 支持修正图片宽高
  • 支持GIF图片
  • 支持Base64编码
  • 自持自定义图片加载器

  • 支持内存和磁盘双缓存

gradle中引用的方法

compile 'com.zzhoujay.richtext:richtext:2.5.2'

基本使用

RichText.from(text).into(textView);

设置数据源类型

直接设置

// 设置为Html
RichText.fromHtml(text).into(textView);

// 设置为Markdown
RichText.fromMarkdown(text).into(textView);

使用type方法设置

RichText.from(text).type(RichText.TYPE_MARKDOWN).into(textView);

高级

RichText
       .from(text) // 数据源
       .type(RichText.TYPE_MARKDOWN) // 数据格式,不设置默认是Html,使用fromMarkdown的默认是Markdown格式
       .autoFix(true) // 是否自动修复,默认true
       .autoPlay(true) // gif图片是否自动播放
       .showBorder(true) // 是否显示图片边框
       .borderColor(Color.RED) // 图片边框颜色
       .borderSize(10) // 边框尺寸
       .borderRadius(50) // 图片边框圆角弧度
       .scaleType(ImageHolder.ScaleType.FIT_CENTER) // 图片缩放方式
       .size(ImageHolder.MATCH_PARENT, ImageHolder.WRAP_CONTENT) // 图片占位区域的宽高
       .fix(imageFixCallback) // 设置自定义修复图片宽高
       .fixLink(linkFixCallback) // 设置链接自定义回调
       .noImage(true) // 不显示并且不加载图片
       .resetSize(false) // 默认false,是否忽略img标签中的宽高尺寸(只在img标签中存在宽高时才有效),true:忽略标签中的尺寸并触发SIZE_READY回调,false:使用img标签中的宽高尺寸,不触发SIZE_READY回调
       .clickable(true) // 是否可点击,默认只有设置了点击监听才可点击
       .imageClick(onImageClickListener) // 设置图片点击回调
       .imageLongClick(onImageLongClickListener) // 设置图片长按回调
       .urlClick(onURLClickListener) // 设置链接点击回调
       .urlLongClick(onUrlLongClickListener) // 设置链接长按回调
       .placeHolder(placeHolder) // 设置加载中显示的占位图
       .error(errorImage) // 设置加载失败的错误图
       .cache(Cache.ALL) // 缓存类型,默认为Cache.ALL(缓存图片和图片大小信息和文本样式信息)
       .imageGetter(yourImageGetter) // 设置图片加载器,默认为DefaultImageGetter,使用okhttp实现
       .bind(tag) // 绑定richText对象到某个object上,方便后面的清理
       .done(callback) // 解析完成回调
       .into(textView); // 设置目标TextView

释放资源

必要时可调用RichText对象的clear方法释放资源,但很多情况不需要这样做

// 加载富文本
RichText.from(text).bind(activity).into(textView);

// activity onDestory时
RichText.clear(activity);

在应用退出时调用RichText.recycle()


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用Java正则表达式来匹配富文本图片、链接、视频等元素。下面是一个简单的示例: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class RichTextParser { private static final String IMG_PATTERN = "<img.+?src=[\"'](.+?)[\"'].*?>"; private static final String LINK_PATTERN = "<a.+?href=[\"'](.+?)[\"'].*?>(.+?)</a>"; private static final String VIDEO_PATTERN = "<video.+?src=[\"'](.+?)[\"'].*?>"; public static void parse(String richText) { Pattern imgPattern = Pattern.compile(IMG_PATTERN); Matcher imgMatcher = imgPattern.matcher(richText); while (imgMatcher.find()) { String imgUrl = imgMatcher.group(1); System.out.println("Found image: " + imgUrl); } Pattern linkPattern = Pattern.compile(LINK_PATTERN); Matcher linkMatcher = linkPattern.matcher(richText); while (linkMatcher.find()) { String linkUrl = linkMatcher.group(1); String linkText = linkMatcher.group(2); System.out.println("Found link: " + linkUrl + " (" + linkText + ")"); } Pattern videoPattern = Pattern.compile(VIDEO_PATTERN); Matcher videoMatcher = videoPattern.matcher(richText); while (videoMatcher.find()) { String videoUrl = videoMatcher.group(1); System.out.println("Found video: " + videoUrl); } } } ``` 上述代码,使用了三个正则表达式分别匹配富文本图片、链接和视频元素。其,`IMG_PATTERN`用于匹配`<img>`标签,`LINK_PATTERN`用于匹配`<a>`标签,`VIDEO_PATTERN`用于匹配`<video>`标签。通过`Pattern`和`Matcher`类的配合使用,可以在富文本查找出所有符合条件的元素,并进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值