android 文字闪烁效果,Android Shader应用开发之霓虹闪烁文字效果
本文实例为大家分享了android霓虹闪烁文字效果的具体代码,供大家参考,具体内容如下
package com.example.apple.shaderdemo;
import android.content.context;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.lineargradient;
import android.graphics.matrix;
import android.graphics.shader;
import android.support.annotation.nullable;
import android.text.textpaint;
import android.util.attributeset;
import android.widget.textview;
/**
* created by apple on 2017/5/10.
*/
public class lineargradienttextview extends textview {
private textpaint mpaint;
private lineargradient mlineargradient ;
private matrix mmatrix;
private float mtranslate;
private float deltax = 20;
private int mgradientsize;
public lineargradienttextview(context context) {
super(context);
}
public lineargradienttextview(context context, @nullable attributeset attrs) {
super(context, attrs);
}
/**
* 优先于ondraw执行,在这里得到系统绘制textview的画笔,然后给这个画笔设置shader
* 这样下面在执行ondraw的时候,使用的就是带有shader效果的画笔了
* @param w
* @param h
* @param oldw
* @param oldh
*/
@override
protected void onsizechanged(int w, int h, int oldw, int oldh) {
super.onsizechanged(w, h, oldw, oldh);
// ★拿到系统textview的画笔
mpaint = getpaint();
// 得到文本
string text = gettext().tostring();
// 用画笔测量文本的长度
float textwith = mpaint.measuretext(text);
// 3个文字的宽度
mgradientsize = (int) (textwith / text.length() * 3);
// 从左边-gradientsize开始,即左边距离文字gradientsize开始渐变
// 一个渐变单位是:从第一个字之前3字距离开始到第一个字之前位置终结
//然后一直让这个渐变单位从左往右移动dx位移,直到最右侧后,向左移动
// clamp意思是:由于你的只是在渐变3个字的长度,那么剩余的空间,让边缘颜色去填充
mlineargradient = new lineargradient(-mgradientsize,0,0,0,new int[]{
0xffff0000, 0xff00ff00, 0xff00ffff},null, shader.tilemode.clamp
);
mpaint.setshader(mlineargradient);
}
@override
protected void ondraw(canvas canvas) {
// 调用super,意思是按照系统绘制textview的流程先把textview绘制完成
super.ondraw(canvas);
// 我在系统基础上再绘制一些效果
mtranslate += deltax;
float textwidth = getpaint().measuretext(gettext().tostring());
// 到了边界dx取反
if(mtranslate > textwidth + mgradientsize || mtranslate < 0){
deltax = - deltax;
}
// 不停地方平移,得到闪烁的效果
mmatrix = new matrix();
mmatrix.settranslate(mtranslate, 0);
mlineargradient.setlocalmatrix(mmatrix);
// 延时重绘
postinvalidatedelayed(50);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
android 文字闪烁效果,Android Shader应用开发之霓虹闪烁文字效果相关推荐
- css3实现文字闪烁效果的三种展示方式
转载自:http://www.fly63.com/article/detial/616 文字闪烁效果一: 通过改变透明度来实现文字的渐变闪烁,效果如下: 文字带渐变效果的闪烁: <div cla ...
- android 字体倒影,Android开发中怎么实现一个文字倒影效果
Android开发中怎么实现一个文字倒影效果 发布时间:2020-11-25 17:18:19 来源:亿速云 阅读:140 作者:Leah 这期内容当中小编将会给大家带来有关Android开发中怎么实 ...
- android表情加文字图片,Android开发技巧之像QQ一样输入文字和表情图像
EditText和TextView一样,也可以进行图文混排.所不同的是,TextView只用于显示图文混排效果,而EditText不仅可显示,也可混合输入文字和图像,让我们先回顾一下图5.2所示的QQ ...
- android button 中文字位置设置,iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色...
btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...
- 【Android 应用开发】Canvas 绘制文字 ( 文字尺寸测量 | 基线绘制 )
文章目录 I . 文字尺寸测量 II . 基线绘制 I . 文字尺寸测量 1 . 精准绘制需求 : Canvas 绘制文字时 , 有时需要精准的控制文字的绘制 , 如绘制到指定的区域 , 居中 , 或 ...
- android开发重要控件,Android界面编程——Android基本控件
Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员 ...
- 使用Android Studio搭建Android集成开发环境(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android的历史、版本与开发
什么是Android? Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:Open Han ...
- Android 微光闪烁效果之更强Shimmer-android
版权声明:本文为Zhang Phil原创文章,请不要转载! http://blog.csdn.net/zhangphil/article/details/49724475 Android 微光闪烁效果 ...
最新文章
- 2020年最漂亮的Linux发行版
- 收集的不错的计算机图书
- cast函数 oracle 日期_从Oracle到PG 该做的改造工作一个都不能少!
- matlabpython建模_一直在用Matlab建模,现在Python很火,用学么?
- Trapping Rain Water
- VS设置程序启动权限为管理员权限
- SQL Server 日期转换格式
- java acr122 读取数据_acr122读写器软件下载
- 令人耳目一新的20款英文手写字体盘点
- python如何循环sql语句_sql语句的for循环语句怎么写
- 物理学家用AI改写教科书!质子中发现新的夸克,可能性高达99.7%
- shell-5.随机数,嵌套循环,expect
- 2022全国高中数学联赛A1卷T2几何答案
- 视频工具箱android,小熊视频工具箱
- 计算机应用大赛宣传稿,江苏开放大学计算机应用基础中国名城宣传片
- 数学中那些非常奇葩的证明
- 官网下载QT不成功解决方案
- elf2flt 解释
- 保边滤波之引导滤波与领域转换滤波
- qt实现本地\网络图片查看器