如何实现一个 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 ,要实现简单的富文本编辑需求,可操作性还是比较大的。综合再三,我选择了这种方式来实现自己的需求。
使用多种 Layout 布局,每一种布局对应一种 HTML 格式,比如图片,比如顺序列表等。具体的实现例子可以参考这个链接。 Medium 和 Evernote 的富文本编辑就是采用这种方式实现的。总体来说比较复杂。
WebView + JavaScript 实现。现在 Web 端有很多成熟的 JavaScript 富文本编辑库,比如 Squire ,你只需要做好 WebView 和 JavaScript 的交互就可以了(多写回调函数)。理论上虽然是这么说,但是在实现过程你需要解决 WebView 的兼容性问题( Android 4.4 及其以上版本和 4.4 以下版本的 WebView 内核不一样),以及其他一些不可预见的问题(比如我就遇到无法粘贴文字的问题)。
EditText + Span 。 Android 的 TextView 原生支持诸如粗体、删除线、引用等 Span ,要实现简单的富文本编辑需求,可操作性还是比较大的。综合再三,我选择了这种方式来实现自己的需求。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询