700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android-自定义控件-闪动文字 TextView

Android-自定义控件-闪动文字 TextView

时间:2021-05-05 10:38:28

相关推荐

Android-自定义控件-闪动文字 TextView

效果:

先自定义 MyTextView:

public class MyTextView extends android.support.v7.widget.AppCompatTextView {private Paint mPaint = null;private int mViewWidth = 0;private LinearGradient mLinearGradient;private Matrix mGradientMatrix;private int mTranslate;public MyTextView(Context context) {super(context);}public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);}public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected 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,0xffffffff,Color.BLUE}, null, Shader.TileMode.CLAMP);mPaint.setShader(mLinearGradient);mGradientMatrix = new Matrix();}}}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if (mGradientMatrix != null){mTranslate += mViewWidth/5;if (mTranslate > 2*mViewWidth){mTranslate = -mViewWidth;}mGradientMatrix.setTranslate(mTranslate, 0);mLinearGradient.setLocalMatrix(mGradientMatrix);postInvalidateDelayed(100);}}}

在布局文件中添加:

<com.example.desighviewtext.views.MyTextViewandroid:layout_width="match_parent"android:layout_height="100dp"android:layout_margin="10dp"android:gravity="center"android:textSize="35dp"android:text="My android TextView"/>

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