android如何展示富文本_如何实现一个 Android 端的富文本编辑器?

本文探讨了在Android上实现富文本编辑器的三种方法,包括使用多种Layout、WebView+JavaScript以及EditText+Span。作者选择了EditText+Span的方式,详细解释了Span的概念、使用方式以及如何处理导入导出的问题。此外,还提到了Html.fromHtml()和Html.toHtml()方法的限制及其处理策略。
摘要由CSDN通过智能技术生成

最近处于自己的兴趣和其他一些原因,我决定尝试实现一个简单的 Android 端富文本编辑器组件。

考察了一翻,在 Android 上实现富文本编辑器的思路大致分为三种:使用多种 Layout 布局,每一种布局对应一种 HTML 格式,比如图片,比如顺序列表等。具体的实现例子可以参考这个链接。 Medium 和 Evernote 的富文本编辑就是采用这种方式实现的。总体来说比较复杂。

WebView + JavaScript 实现。现在 Web 端有很多成熟的 JavaScript 富文本编辑库,比如 Squire ,你只需要做好 WebView 和 JavaScript 的交互就可以了(多写回调函数)。理论上虽然是这么说,但是在实现过程你需要解决 WebView 的兼容性问题( Android 4.4 及其以上版本和 4.4 以下版本的 WebView 内核不一样),以及其他一些不可预见的问题(比如我就遇到无法粘贴文字的问题)。

EditText + Span 。 Android 的 TextView 原生支持诸如粗体、删除线、引用等 Span ,要实现简单的富文本编辑需求,可操作性还是比较大的。综合再三,我选择了这种方式来实现自己的需求。

既然决定使用 EditText + Span 的方式来实现,必然要对相关的 API 有所了解。

首先来了解一下 Span 。Span 是一个强大的概念,有兴趣深入的同学我推荐直接阅读这篇译文。

在这里我们我们主要使用两种类型的 Span :继承自 CharacterStyle 的 Span ,比如 StyleSpan ,可以在字符级别上添加粗体,下划线等。

继承自 ParagraphStyle 的 Span ,比如 QuoteSpan &

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值