欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Android 解析加载Markdown格式的文本

Android 解析加载Markdown格式的文本

2025/3/13 0:03:40 来源:https://blog.csdn.net/fromVillageCoolBoy/article/details/146117364  浏览:    关键词:Android 解析加载Markdown格式的文本

Android 解析加载Markdown格式的文本

一、noties.markwon库(推荐)

依赖

implementation 'io.noties.markwon:core:4.6.2'
//加载图片
implementation 'io.noties.markwon:image:4.6.2'
implementation 'io.noties.markwon:image-glide:4.6.2'

使用

Markwon markwon = Markwon.create(requireContext());
markwon.setMarkdown(binding.tvTest, s);

加载图片

String s2 = "# 明天天气预报\n" +" \n" +"**日期**:2023年3月20日\n" +" \n" +"**天气状况**:晴朗\n" +" \n" +"![明天天气图标](https://www.baidu.com/img/flexible/logo/pc/result.png) <!-- 请替换为实际的图片URL -->\n" +" \n" +"**温度范围**:最低10°C,最高22°C\n" +" \n" +"**风向**:东南风,风力2级\n" +" \n" +"**湿度**:50%";
Markwon markwon = Markwon.builder(requireContext()).usePlugin(GlideImagesPlugin.create(requireContext())).usePlugin(GlideImagesPlugin.create(Glide.with(this))).usePlugin(GlideImagesPlugin.create(new GlideImagesPlugin.GlideStore() {@NonNull@Overridepublic RequestBuilder<Drawable> load(@NonNull AsyncDrawable drawable) {return Glide.with(requireActivity()).load(drawable.getDestination());}@Overridepublic void cancel(@NonNull Target<?> target) {Glide.with(requireActivity()).clear(target);}})).build();
markwon.setMarkdown(binding.tvTest, s2);

图片能加载出来!

二、yydcdut:markdown-processor库

导入依赖

implementation 'com.yydcdut:markdown-processor:0.1.3'

使用

String s = "# 明天天气预报\n" +" \n" +"**日期**:2023年3月20日\n" +" \n" +"**天气状况**:晴朗\n" +" \n" +"**温度范围**:最低10°C,最高22°C\n" +" \n" +"**风向**:东南风,风力2级\n" +" \n" +"**湿度**:50%";
MarkdownProcessor markdownProcessor = new MarkdownProcessor(requireActivity());
markdownProcessor.factory(TextFactory.create());//必须设置
markdownProcessor.config(new MarkdownConfiguration.Builder(requireContext()).build());
CharSequence parse = markdownProcessor.parse(s2);
binding.tvTest.setText(parse);        

图片、表格暂未测试。

RxMarkdown

三、zzhoujay.richtext库

依赖

implementation 'com.zzhoujay.richtext:richtext:3.0.7'  //RichText资源库

使用

RichText.initCacheDir(context); //设置缓存目录,不设置会报错
RichText.from(string).bind(context).showBorder(false).size(ImageHolder.MATCH_PARENT, ImageHolder.WRAP_CONTENT).into(textview);

但是我加载不出来~感觉不好用。

如果上面的都不好使,可以直接试试这个

四、参考链接:

Android TextView 加载MarkDown 格式的数据,支持富文本格式

GitHub

noties库地址

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com