我正在开发一个Android代码编辑器,但是当我对其应用语法高亮时,它会变得非常迟缓,有没有什么方法可以优化它?
这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
scriptEditor.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
applySyntax(s);
}
};
}
public void applySyntax(Spannable spannable) {
matchz = WORDPat.matcher(spannable);
while (matchz.find()) {
Integer color = null;
if (StringKeyword.contains(matchz.group())) {
color = Integer.valueOf(keyColor);
type = "keyword";
}
if (StringKeyword2.contains(matchz.group())) {
color = Integer.valueOf(keyColor2);
type = "keyword";
}
if (StringKeyword3.contains(matchz.group())) {
color = Integer.valueOf(keyColor3);
type = "keyword";
}
if (color != null) {
spannable.setSpan(new ForegroundColorSpan(color.intValue()), matchz.start(), matchz.end(), 0);
color = null;
} else {
spannable.setSpan(new ForegroundColorSpan(Color.WHITE), matchz.start(), matchz.end(), 0);
}
}
}
}
答案 0 :(得分:0)
您可以像在此项目中一样使用语法突出显示代码: https://github.com/vmihalachi/turbo-editor
(参见MainActivity.java中的“Editor”类)
您应突出显示 仅可见部分 ,但不能同时突出显示所有文字。
(P.S我很抱歉,如果文中有错误,我不懂英语)