zoukankan      html  css  js  c++  java
  • 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 = "![RUNOOB 图标](http://static.runoob.com/images/runoob-logo.png)
    " +
          " " +
          "1. 第一项: " +
          " - 第一项嵌套的第一个元素 " +
          " - 第一项嵌套的第二个元素 " +
          " " +
          "这是一个链接 [菜鸟教程](https://www.runoob.com) "
          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依赖库。
  • 相关阅读:
    iBatis.Net(2):基本概念与配置
    iBatis.Net(4):DataMapper API
    iBaits.Net(1):简介与安装
    在YII项目中使用ckeditor和ckfinder快速部署文本编辑器并实现图片上传
    iBatis.Net(6):Data Map(深入)
    基于.net mvc的校友录(开篇)
    Ubuntu下建立tftp服务+我安装过程出现的问题
    2013年了,今年我将毕业
    路由器系统的内存储布局
    基于.net mvc的校友录(一、前台需求设计)
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/12859537.html
Copyright © 2011-2022 走看看