效果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/5201a9bc025f6cc78d6323270beb68ed.png)
核心代码如下:
package com.laugh.HighlightCode;
import android.widget.EditText;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
import android.graphics.Typeface;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.Layout;
import android.os.Handler;
import android.os.Message;
import android.text.TextWatcher;
import android.text.Editable;
import android.text.style.ForegroundColorSpan;
import android.text.Spanned;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.text.style.BackgroundColorSpan;
import android.view.View;
import android.view.MotionEvent;
import android.util.Log;
public class HighlightEditor extends EditText implements TextWatcher {
public static final Pattern a = Pattern.compile("=|<|>|!|\\-|\\+|&|\\|");
public static final Pattern b = Pattern.compile("true|false|[0-9]*$|\\d+(\\.\\d+)?");
public static final Pattern c = Pattern.compile("class|import|extends|package|implements|swit