首先,直接上图,有图有真相!!!
现在手机上一般都会有便签、备忘录
之类的App,可以帮助我们平时记录一些事情,当然,对于一般记录是足够了的,但是对于我这种喜欢将事情记录逐条记录
,也就是希望能够排版清晰明了的人来说,能够用Markdown
格式去记录再好不过,网上虽然也有一些支持Markdown
的App,但是我觉得没必要,有的App还需要联网等等之类的很麻烦,所有我就想,能不能自己做一款本地支持Markdown
格式的便签,于是就有了这款Note便签
核心功能是能够支持Markdown
,那么首先要弄懂怎么去解析Markdown
,我的解析步骤是:
文本分行
,逐行解析
实体类MD
,用来保存每行的Markdown
类型(比如:标题、引用、序列等)Markdown
的语法规则,一行行地分析,最终得到一个List<MD>
,到这里我们就将解析工作完成了完成以上三步,其实我们已经完成一半工作了,那么剩下的一半工作就剩渲染了
我们在使用TextView
时,知道只要调用setText()
方法就可以为其设置文本了,但是需要注意的是,setText()
方法接收的参数是CharSequence
类型,在Android
里,SpannableString
是实现CharSequence
接口的类,而且SpannableString
有一个setSpan()
方法,这个方法可以将指定字符渲染成指定的Span
,Android
中有许多原生的Span
,如果你不满足现有Span
,还可以自定义Span
,我在Note
中就自定义
了几个Span
关于如何解析和渲染的类,我写在了一个类里面
Markdown
里面是具体的解析方法和渲染步骤
横屏编辑
横屏编辑支持
左侧编辑,右侧预览
数据库
数据库使用的是LitePal
暂不支持
粗体、斜体、粗斜体、代码、表格 为什不支持? 因为这类属于同行Markdown格式,暂时还找不到比较简洁的方法去解决,解决了会提交代码