最近开始学习Android,前天在Github上找到了一个Android下记事本的源代码,看着挺简单就想学习一下,可是还是被一些基础的问题难倒。做了一整天的研究才有些理解。
Github链接:https://github.com/mthli/Knife
这个文本编辑器要实现对文字的加粗、斜体、下划线、删除线等功能。在实现这些功能时,用到了Span的概念。Span是Android中文本操作的一个重要概念,与其相关的类包括Spannable、Spanned等。Span的具体内容以下两篇文章有详细介绍:
http://blog.csdn.net/lixin84915/article/details/8110667
http://flavienlaurent.com/blog/2014/01/31/spans/
一、遇到的问题
在这个app的源代码中,设置字体样式的代码是这样的:
protected void styleValid(int style, int start, int end) {
switch (style) {
case Typeface.NORMAL:
case Typeface.BOLD:
case Typeface.ITALIC:
case Typeface.BOLD_ITALIC:
break;
default:
return;
}
if (start >= end) {
return;
}
//getE