效果图
首先,直接上图,有图有真相!!!






GitHub地址
为什么要自己做便签
现在手机上一般都会有便签、备忘录
之类的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格式,暂时还找不到比较简洁的方法去解决,解决了会提交代码
网友评论