Android自定义View实现闪耀字体效果

作者:ScalpelD 时间:2023-05-10 02:27:43 

本文实例为大家分享了闪耀字体效果的具体代码,供大家参考,具体内容如下


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.widget.TextView;

/**
* 闪耀字体
*/

public class ShiningFontView extends TextView {
 private int mViewWidth;
 private Paint mPaint;
 private LinearGradient mLinearGradient;
 private Matrix mGradientMatrix;
 private int mTranslate;

public ShiningFontView(Context context) {
   super(context);
 }

public ShiningFontView(Context context, AttributeSet attrs) {
   super(context, attrs);
 }

public ShiningFontView(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, 0xffffffff, Color.BLUE}, null, Shader.TileMode.CLAMP);
       mPaint.setShader(mLinearGradient);
       mGradientMatrix = new Matrix();
     }
   }
 }

@Override
 protected 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.hz56pt.huipaotui.view.ShiningFontView//包裹起来就行
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerVertical="true"
     android:layout_marginLeft="@dimen/margin_10"
     android:layout_toRightOf="@id/iv_tips1_icon"
     android:text="@string/tips1" />

效果图如下

Android自定义View实现闪耀字体效果

标签:Android,view,闪耀字体
0
投稿

猜你喜欢

  • WPF ComboBox获取当前选择值的实例详解

    2022-02-09 17:26:23
  • springboot配置mysql数据库spring.datasource.url报错的解决

    2023-10-04 12:49:26
  • Java操作hdfs文件系统过程

    2023-12-13 23:42:32
  • java实现文件上传下载和图片压缩代码示例

    2023-01-02 17:49:30
  • Java构建JDBC应用程序的实例操作

    2023-08-07 12:09:13
  • Maven管理SpringBoot Profile详解

    2022-03-20 09:57:45
  • C#泛型的逆变协变之个人理解

    2021-05-28 16:33:03
  • 操作xml,将xml数据显示到treeview的C#代码

    2023-01-02 19:56:48
  • 关于Intellij IDEA中的Version Control问题

    2021-12-27 08:42:01
  • Android 8.0实现蓝牙遥控器自动配对

    2021-08-05 08:24:16
  • AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列问题及用法

    2021-09-05 14:34:33
  • Service Activity的三种交互方式(详解)

    2022-03-16 20:55:08
  • 详解Android获取系统内核版本的方法与实现代码

    2023-11-25 14:51:59
  • JAVA实现账户取款和存款操作

    2023-08-22 16:31:45
  • Java分析讲解序列化与字典功能的序列化

    2021-11-12 11:19:25
  • springCloud config本地配置操作

    2023-01-13 11:07:56
  • JavaApi实现更新删除及读取节点

    2023-11-10 07:30:33
  • MyBatis通用Mapper和PageHelper的过程详解

    2022-09-29 16:17:03
  • Java设计模式之享元模式

    2022-01-30 19:03:28
  • Android学习之Broadcast的简单使用

    2023-11-19 15:18:02
  • asp之家 软件编程 m.aspxhome.com