Skip to content

Commit 90959ed

Browse files
committed
修复设置文本描边后必须设置文本渐变才能显示正常的问题
1 parent a625c06 commit 90959ed

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

library/src/main/java/com/hjq/shape/builder/TextColorBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ public SpannableStringBuilder buildTextSpannable(CharSequence text) {
227227
} else if (linearGradientFontSpan != null) {
228228
builder.setSpan(linearGradientFontSpan, 0, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
229229
} else if (strokeFontSpan != null) {
230+
strokeFontSpan.setTextSolidColor(mTextColor);
230231
builder.setSpan(strokeFontSpan, 0, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
231232
}
232233

library/src/main/java/com/hjq/shape/span/StrokeFontSpan.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.hjq.shape.span;
22

33
import android.graphics.Canvas;
4+
import android.graphics.Color;
45
import android.graphics.Paint;
6+
import android.support.annotation.ColorInt;
57
import android.support.annotation.NonNull;
68
import android.text.SpannableStringBuilder;
79
import android.text.Spanned;
@@ -23,6 +25,9 @@ public class StrokeFontSpan extends CommonFontSpan {
2325
private int mTextStrokeColor;
2426
private int mTextStrokeSize;
2527

28+
/** 文本颜色 */
29+
private int mTextSolidColor;
30+
2631
/**
2732
* 构建一个文字描边的 Spannable 对象
2833
*/
@@ -58,10 +63,22 @@ public void onDraw(@NonNull Canvas canvas, @NonNull Paint paint, CharSequence te
5863
// 设置粗体
5964
//mStrokePaint.setFakeBoldText(true);
6065
mStrokePaint.setColor(mTextStrokeColor);
66+
// 绘制文本描边
6167
canvas.drawText(text, start, end, x, y, mStrokePaint);
68+
69+
// 绘制文本内容
70+
if (mTextSolidColor != Color.TRANSPARENT) {
71+
paint.setColor(mTextSolidColor);
72+
canvas.drawText(text, start, end, x, y, paint);
73+
}
74+
}
75+
76+
public StrokeFontSpan setTextSolidColor(@ColorInt int color) {
77+
mTextSolidColor = color;
78+
return this;
6279
}
6380

64-
public StrokeFontSpan setTextStrokeColor(int color) {
81+
public StrokeFontSpan setTextStrokeColor(@ColorInt int color) {
6582
mTextStrokeColor = color;
6683
return this;
6784
}

0 commit comments

Comments
 (0)