|
3 | 3 | import android.graphics.Canvas; |
4 | 4 | import android.graphics.LinearGradient; |
5 | 5 | import android.graphics.Paint; |
| 6 | +import android.graphics.Paint.FontMetricsInt; |
6 | 7 | import android.graphics.Shader; |
7 | 8 | import android.support.annotation.NonNull; |
8 | 9 | import android.text.SpannableStringBuilder; |
@@ -58,8 +59,9 @@ public void onDraw(@NonNull Canvas canvas, @NonNull Paint paint, CharSequence te |
58 | 59 | int start, int end, float x, int top, int y, int bottom) { |
59 | 60 | LinearGradient linearGradient; |
60 | 61 | if (mTextGradientOrientation == GRADIENT_ORIENTATION_VERTICAL) { |
61 | | - linearGradient = new LinearGradient(0, 0, 0, paint.descent() - paint.ascent(), |
62 | | - mTextGradientColor, mTextGradientPositions, Shader.TileMode.REPEAT); |
| 62 | + FontMetricsInt fontMetrics = paint.getFontMetricsInt(); |
| 63 | + linearGradient = new LinearGradient(0, 0, 0, fontMetrics.bottom - fontMetrics.top, |
| 64 | + mTextGradientColor, mTextGradientPositions, Shader.TileMode.MIRROR); |
63 | 65 | } else { |
64 | 66 | linearGradient = new LinearGradient(x, 0, x + textWidth, 0, |
65 | 67 | mTextGradientColor, mTextGradientPositions, Shader.TileMode.REPEAT); |
|
0 commit comments