老样子,还是延续之前的MonkeyLei:Android关键字边框/背景、关键字高亮 - 完善版本 ,产品需求需要设置关键字背景是渐变效果。(当然也有人说了,可以设置图片方式或者其他方式,都可以啦。。)
直接基于之前的ReplacementSpan修改就行 - 重点是LinearGradient和paint.setShader(linearGradient)的使用
RoundBackgroundGradiantColorSp.java
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.text.style.ReplacementSpan;
/**
* span包含三部分:shape、文字和距离其他文字的空白
*/
public class RoundBackgroundGradiantColorSp extends ReplacementSpan {
private LinearGradient bgColor;
private int textColor;
private int textSize;
private int mSize, diffSize;
private int radius;
private float originTextH, nowTextH, diffH;
public RoundBackgroundGradiantColorSp(LinearGradient linearGradient, int textColor, int textSize, int radius) {