工具搬运工 原作者请点击链接建详情
1. RichText
- 流式操作
- 低侵入性
- 依赖少,只依赖了disklrucache和support v4
- 支持Html和Markdown格式文本
- 支持图片点击和长按事件
- 链接点击事件和长按事件
- 支持设置加载中和加载错误时的图片
- 支持自定义超链接的点击回调
- 支持修正图片宽高
- 支持GIF图片
- 支持Base64编码、本地图片和Assets目录图片
- 自持自定义图片加载器、图片加载器
- 支持内存和磁盘双缓存
- 已经加入对自定义Html解析器的支持
2. MarkDown
MarkDown
Android平台的原生Markdown解析器,已整合进 RichText
- 由markdown文本直接转换为Spanned,快捷高效
- 不依赖特定控件,低侵入性
- 遵循 Github Flavored Markdown 标准
效果展示
[图片上传失败...(image-aa9fb1-1527690479054)]
使用
Markdown.fromMarkdown(text,imageGetter,textView);
注意: 此方法需要在textView的Measure完成后调用,因为需要获取textView的宽高
例子:
textView.post(new Runnable() {
@Override
public void run() {
Spanned spanned = MarkDown.fromMarkdown(stream, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
drawable.setBounds(0, 0, 400, 400);
return drawable;
}
}, textView);
textView.setText(spanned);
}
自定义样式
在可以你的主题里加入 markdownStyle
来自定义样式,如果没有指定样式会使用自带的亮色主题。
例子:
<style name="你的主题">
<!--<item name="markdownStyle">@style/Markdown</item>--> <!-- 暗色主题 -->
<item name="markdownStyle">@style/Markdown.Light</item> <!-- 亮色主题 -->
</style>
在RichText中使用
RichText 包含了一些对图片和其它东西的处理,使用更简单
RichText.fromMarkdown(markdown).into(textView);
Use in Gradle
compile 'com.zzhoujay.markdown:markdown:1.0.5'
已知问题
- 暂不支持使用反斜杠 \ 转义
- 不支持表格
- TextView设置了
setTextIsSelectable(true)
后和长按事件冲突 - 暂时不支持内嵌html
后续计划
- 修复一些已知问题
- 加入多选框支持
- 增加对简单html标签的支持