Android自定义View实现闪耀字体效果
发布时间 - 2026-01-10 22:24:18 点击率:次本文实例为大家分享了闪耀字体效果的具体代码,供大家参考,具体内容如下
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 自定义通用的loadingview实现代码
# Android自定义View实现仿GitHub的提交活跃表格
# Android自定义Animation实现View摇摆效果
# Android自定义View 实现水波纹动画引导效果
# android自定义ImageView仿图片上传示例
# Android自定义view之仿支付宝芝麻信用仪表盘示例
# Android自定义View之边框文字、闪烁发光文字
# Android自定义WaveView实现波浪进度效果
# Android自定义View实现shape图形绘制
# Android 自定义view仿支付宝咻一咻功能
# Android自定义View实现通讯录字母索引(仿微信通讯录)
# Android编程使用自定义View实现水波进度效果示例
# 就行
# 大家分享
# 具体内容
# 大家多多
# int
# private
# mPaint
# mViewWidth
# extends
# TextView
# widget
# ShiningFontView
# public
# mLinearGradient
# Override
# defStyleAttr
# void
# protected
# attrs
# mTranslate
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel如何配置任务调度?(Cron Job示例)
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
如何安全更换建站之星模板并保留数据?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何在 React 中条件性地遍历数组并渲染元素
PythonWeb开发入门教程_Flask快速构建Web应用
如何挑选高效建站主机与优质域名?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Laravel如何处理异常和错误?(Handler示例)
如何做网站制作流程,*游戏网站怎么搭建?
使用spring连接及操作mongodb3.0实例
如何用wdcp快速搭建高效网站?
Laravel如何使用Sanctum进行API认证?(SPA实战)
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Python文件流缓冲机制_IO性能解析【教程】
android nfc常用标签读取总结
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel怎么上传文件_Laravel图片上传及存储配置
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
如何确保FTP站点访问权限与数据传输安全?
网站优化排名时,需要考虑哪些问题呢?
微信小程序 scroll-view组件实现列表页实例代码
怎么用AI帮你为初创公司进行市场定位分析?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何用好域名打造高点击率的自主建站?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
如何挑选最适合建站的高性能VPS主机?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何在IIS中配置站点IP、端口及主机头?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
python中快速进行多个字符替换的方法小结
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
如何用PHP快速搭建高效网站?分步指南
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel怎么连接多个数据库_Laravel多数据库连接配置
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
简单实现Android文件上传

