Note:个人便签,支持部分Markdown

效果图

首先,直接上图,有图有真相!!!
首页_无便签

编辑_竖屏

编辑_竖屏_预览

编辑_横屏

首页_有便签

搜索

GitHub地址

https://github.com/JYangkai/Note


为什么要自己做便签

现在手机上一般都会有便签、备忘录之类的App,可以帮助我们平时记录一些事情,当然,对于一般记录是足够了的,但是对于我这种喜欢将事情记录逐条记录,也就是希望能够排版清晰明了的人来说,能够用Markdown格式去记录再好不过,网上虽然也有一些支持Markdown的App,但是我觉得没必要,有的App还需要联网等等之类的很麻烦,所有我就想,能不能自己做一款本地支持Markdown格式的便签,于是就有了这款Note便签

怎么做

核心功能是能够支持Markdown,那么首先要弄懂怎么去解析Markdown,我的解析步骤是:

  1. 首先将文本分行逐行解析
  2. 创建一个实体类MD,用来保存每行的Markdown类型(比如:标题、引用、序列等)
  3. 我们根据Markdown的语法规则,一行行地分析,最终得到一个List<MD>,到这里我们就将解析工作完成了

完成以上三步,其实我们已经完成一半工作了,那么剩下的一半工作就剩渲染了

如何渲染

我们在使用TextView时,知道只要调用setText()方法就可以为其设置文本了,但是需要注意的是,setText()方法接收的参数是CharSequence类型,在Android里,SpannableString是实现CharSequence接口的类,而且SpannableString有一个setSpan()方法,这个方法可以将指定字符渲染成指定的SpanAndroid中有许多原生的Span,如果你不满足现有Span,还可以自定义Span,我在Note中就自定义了几个Span

核心类

关于如何解析和渲染的类,我写在了一个类里面
Markdown
里面是具体的解析方法和渲染步骤

其他

横屏编辑

横屏编辑支持左侧编辑,右侧预览

数据库

数据库使用的是LitePal

暂不支持

粗体、斜体、粗斜体、代码、表格 为什不支持? 因为这类属于同行Markdown格式,暂时还找不到比较简洁的方法去解决,解决了会提交代码