Android自定义View实现比赛时间闪动效果
作者:蒙奇_D-路飞 发布时间:2023-02-17 02:29:32
标签:Android,时间闪动
本文实例为大家分享了Android实现比赛时间闪动效果的具体代码,供大家参考,具体内容如下
效果
代码
上代码
public class TwinkleTextView extends TextView implements Runnable {
/**
* 是否显示
*/
private boolean flag = true;
/**
* 闪动内容
*/
private String twinkleText = "'";
/**
* 闪动时间
*/
private int delayMillis = 500;
private boolean run = false;
public TwinkleTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TwinkleTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public TwinkleTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public void beginRun(){
run = true;
run();
}
@Override
public void run() {
if (flag){
setVisibility(VISIBLE);
flag = false;
}else{
setVisibility(INVISIBLE);
flag = true;
}
postDelayed(this, delayMillis);
}
public String getTwinkleText() {
return twinkleText;
}
public void setTwinkleText(String twinkleText) {
this.twinkleText = twinkleText;
setText(twinkleText);
}
public int getDelayMillis() {
return delayMillis;
}
public void setDelayMillis(int delayMillis) {
this.delayMillis = delayMillis;
}
public boolean isRun() {
return run;
}
public void setRun(boolean run) {
this.run = run;
}
}
使用注意事项
我的RecyclerView框架是BRVAH
public class MyAdapter extends BaseQuickAdapter<User, BaseViewHolder> {
public MyAdapter(int layoutResId, @Nullable List<User> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, User item) {
TextView textView = helper.getView(R.id.text);
textView.setText(helper.getAdapterPosition() + "");
TwinkleTextView twinkleTextView = helper.getView(R.id.twinkle);
twinkleTextView.setDelayMillis(500);
if (!twinkleTextView.isRun()) {
twinkleTextView.beginRun();
}
}
}
使用的时候一定要判断是否正在运行
if (!twinkleTextView.isRun()) {
twinkleTextView.beginRun();
}
谢谢。
来源:https://blog.csdn.net/ainiyiwan123/article/details/79739028


猜你喜欢
- 一、前言在C#中,由于有了垃圾回收机制的支持,对象的析构和以前的C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制
- 本文实例讲述了Android编程开发中ListView的常见用法。分享给大家供大家参考,具体如下:一、ListView的使用步骤ListVi
- HashMap的实现原理首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的h
- 一、在idea中查看提交的历史记录右键单击项目单击git单击Show History结果展示:除了第一条记录是创建仓库默认就有的,
- Q 1: 指定 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 好像并不能隐藏导航栏和状态栏?A: 您需要告诉系
- 前言假如有人问你这么几个问题,看能不能答上来Mybatis Mapper 接口没有实现类,怎么实现的 * JDK * 为什么不能对类进
- 前言与消息发送紧密相关的几行代码:1. DefaultMQProducer producer = new DefaultMQProducer
- 最近做项目,ORM 使用的是 MyBatis,为了偷懒,我自然而然的想到了使用 MyBatis Generator(MBG)来生成数据库表对
- 本文介绍通过Java程序批量替换PDF中的指定文本内容。程序环境准备如下:程序使用环境如图,需要注意的是,本文使用了免费版的PDF jar工
- Android 关闭多个Activity的实现方法总的来说有四种方法:1、使用Application来进行关闭public class Ap
- 本教程为大家分享了学籍管理系统的具体java代码,供大家参考,具体内容如下1.需求分析 1.1系统功能设计 (1)能够查询学生的基本信息,如
- 效果图:完全代码(下方有详细解读) private void textBox1_TextChanged(object sender, Eve
- 在 C语言中,占位符是一种用于格式化输出的特殊字符,通常用于 printf() 等输出函数中,用于指定输出的格式和内容。在本文中,我们将详细
- 用Stream解决两层List属性求和假设一个人有很多个银行账户,每个银行账户中存有不同金额的存款,那么我们如何用Stream求一组人的所有
- 一、异步模型的基本概述异步编程的核心是 Task 和 Task<T> 对象,这两个对象对异步操作建模。 它们受关键字 async
- Kotlin的对象表达式与Java中的匿名内部类的主要区别:匿名内部类只能指定一个父类型,但对象表达式可以指定0~N个肤类型。一、对象表达式
- 本文实例分析了Android多线程。分享给大家供大家参考,具体如下:在Android下面也有多线程的概念,在C/C++中,子线程可以是一个函
- JetpackJetpack,我觉得翻译为“飞行器”更好听,因为Google针对编程历史乱象,整理出
- 在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。一、
- 学生模块功能比较少,就是进行考试和查看自己成绩两个大的功能。学生进行考试的功能比较复杂(首先做了校验,不在考试时间范围内,不能进行考试)考试