Android开发经验谈Android开发程序员

Android 写一个属于自己的富文本编辑器

2019-03-19  本文已影响15人  三木仔

之前在看大部分的Android 富文本编辑几乎都是利用webview实现,所以,便有了做一个Android原生的富文本编辑器的主意。

https://blog.csdn.net/qq_15893929/article/details/88670198

样例

照惯例先秀一下图:

列表 预览模式 编辑模式

该富文本编辑器样式仿照印象笔记的Android版,绘制层实现基于Android的span样式。

目前已经实现的功能:
  1. 粗体、斜体、下划线、删除线、上下标、背景色字体样式;
  2. 分割线、缩进、有序列表、无序列表、复选框行样式;
  3. 支持插入本地图片;
  4. 支持插入网络图片;
  5. 支持图片预览;
  6. 支持撤销和反撤销;
  7. 支持本地持久化、支持增删改;
  8. 支持编辑模式和预览模式
具体的实现:

主要的实现在于编辑页面,直接是继承自EditText加以改造的(偷懒),但是如果想实现一个商业级别的编辑器,建议使用StaticLayout和自定义View,但是需要考虑的东西比较多,例如输入法和排版布局、选区管理绘制、各类点击事件。

大致模块
后续计划:

这个版本更多的是将自己所学的一些知识的运用,只做了小一段时间,所以存留很多了bug和缺陷,后续会继续找时间修补。

想增加的内容:

  1. 增加导入导出html
  2. 完善图片池
  3. 增加桌面小部件
  4. 增加保存为图片
  5. 支持超链接、引用更多样式
源码:

https://github.com/ChyengJason/SRich

附上
  1. BackgroundColorSpan 背景色
  2. ForegroundColorSpan 文本颜色(前景色)
  3. RasterizerSpan 光栅效果
  4. StrikethroughSpan 删除线
  5. SuggestionSpan 相当于占位符
  6. UnderlineSpan 下划线
  7. AbsoluteSizeSpan 绝对大小(文本字体)
  8. DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
  9. ImageSpan 图片
  10. RelativeSizeSpan 相对大小(文本字体)
  11. ReplacementSpan 父类,一般不用
  12. URLSpan 文本超链接
  13. StyleSpan 字体样式
  14. SubscriptSpan 下标
  15. SuperscriptSpan 上标
  16. TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
  17. TypefaceSpan 文本字体
上一篇 下一篇

猜你喜欢

热点阅读