第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 文字霓虹灯效果

文字霓虹灯效果

时间:2019-06-15 10:36:05

相关推荐

文字霓虹灯效果

新建LinearGradientTextView,继承TextView,重写onSizeChanged和onDraw。

public class LinearGradientTextView extends TextView {

private int mViewWidth;

private Paint mPaint;

private LinearGradient mLinearGradient;

private Matrix mMatrix;

private int mTranslate;

public LinearGradientTextView(Context context) {

super(context);

}

public LinearGradientTextView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public LinearGradientTextView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

super.onSizeChanged(w, h, oldw, oldh);

if (mViewWidth == 0) {

mViewWidth = getMeasuredWidth();

if (mViewWidth > 0) {

mPaint = getPaint();

mLinearGradient = new LinearGradient(0, 0, mViewWidth, 0,

new int[]{Color.BLUE, Color.GRAY, Color.RED, Color.GREEN}, null, Shader.TileMode.MIRROR);

mPaint.setShader(mLinearGradient);

mMatrix = new Matrix();

}

}

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if (mMatrix != null) {

mTranslate += mViewWidth / 5;

if (mTranslate > 2 * mViewWidth) {

mTranslate = -mViewWidth;

}

mMatrix.setTranslate(mTranslate, 0);

mLinearGradient.setLocalMatrix(mMatrix);

postInvalidateDelayed(100);

}

}

}

LinearGradient有两个构造函数:

public LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions,Shader.TileMode tile)

参数:

float x0: 渐变起始点x坐标

float y0:渐变起始点y坐标

float x1:渐变结束点x坐标

float y1:渐变结束点y坐标

int[] colors:颜色 的int 数组

float[] positions: 相对位置的颜色数组,可为null, 若为null,可为null,颜色沿渐变线均匀分布

Shader.TileMode tile: 渲染器平铺模式

<com.wuxiaolong.apksample.LinearGradientTextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:gravity="center"

android:text="测试文字一闪一闪"

android:textSize="30sp" />

转自:http://wuxiaolong.me//11/16/LinearGradientTextView/

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