1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android Textview实现文字颜色渐变效果

Android Textview实现文字颜色渐变效果

时间:2021-09-17 18:28:07

相关推荐

Android Textview实现文字颜色渐变效果

最近做应用的时候遇到一个需求,一行文字的颜色需要一个渐变效果

如上所有 从左到有逐渐变化,自己写了一个demo实现上述效果

package com.huwei.example.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.Shader;import android.util.AttributeSet;import android.widget.TextView;public class MyTextView extends TextView {private LinearGradient mLinearGradient;private Paint mPaint;private int mViewWidth = 0;private Rect mTextBound = new Rect();public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {mViewWidth = getMeasuredWidth();mPaint = getPaint();String mTipText = getText().toString();mPaint.getTextBounds(mTipText, 0, mTipText.length(), mTextBound);mLinearGradient = new LinearGradient(0, 0, mViewWidth, 0,new int[] { 0xFF429321, 0xFFB4EC51 },null, Shader.TileMode.REPEAT);mPaint.setShader(mLinearGradient);canvas.drawText(mTipText, getMeasuredWidth() / 2 - mTextBound.width() / 2, getMeasuredHeight() / 2 + mTextBound.height()/2, mPaint);}}

核心实现是用了一个LinaerGradient 给paint设置一个LinaerGradient

利用这个LinaerGradient 也可以实现一些其他类似效果,如以下颜色渐变的线条,颜色渐变的图片等

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。