android开发使用TextView显示html富文本、markdown文本的强大框架记录一下
android开发时,有时我们想灵活修改样式灵活,所以想使用富文本显示方式展示,一般我们有以下两种方式:
1.使用TextView显示,使用textView.setText(Html.from(html))显示富文本内容
2.使用WebView加载,使用webView.loadData()或者webView.loadDataWithBaseURL()加载富文本内容
但是以上两个方法都不够完美,TextView显示的富文本样式支持非常有限;
WebView性能损耗比较大而且容易造成内容泄露,整个页面单独进程使用WebView还可以,页面某部分特别是列表页面嵌入WebView不太可能吧。
所以下面就介绍一个比较有名好用的开源框架Markwon,它的原理是解析对应标签为Spanned,然后再显示到TextView上面。好用性能又好,太牛逼了。
下面介绍基本使用:
框架地址:https://noties.io/Markwon/ 以及github:https://github.com/noties/Markwon
android项目里引入:
allprojects{repositories{maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }}}
api 'io.noties.markwon:core:4.3.1' //引入核心库
api 'io.noties.markwon:image:4.3.1' //引入图库支持库
api 'io.noties.markwon:image-glide:4.3.1' //引入使用Glide加载图片的支持库
更多具体库,请查看:https://noties.io/Markwon/docs/v4/install.html 以及 https://search.maven.org/search?q=io.noties.markwon
android使用demo代码kotlin写法:
val content = "\n" +
"\n" +
"1. 第一项:\n" +
" - 第一项嵌套的第一个元素\n" +
" - 第一项嵌套的第二个元素\n" +
"\n" +
"这是一个链接 [菜鸟教程](https://www.runoob.com)\n"
val markwon = Markwon.builder(this)
.usePlugin(GlideImagesPlugin.create(this))
.usePlugin(GlideImagesPlugin.create(Glide.with(this)))
.usePlugin(GlideImagesPlugin.create(object : GlideImagesPlugin.GlideStore {
override fun cancel(target: Target<*>) {
Glide.with(this@TestActivity).clear(target);
}
override fun load(drawable: AsyncDrawable): RequestBuilder<Drawable> {
return Glide.with(this@TestActivity).load(drawable.destination);
}
}))
.build()
markwon.setMarkdown(textView, content)
上面是显示markdown富文本demo,如果想要显示html也是可以的,不过要添加对应的html依赖库。
分类:
android-widget
标签:
android-widget
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2019-05-09 Charles抓包工具的使用-抓包Android手机App的数据