Android代码实现控件闪烁效果
代码地址如下:
http://www.demodashi.com/demo/13162.html
前言
在项目开发过程中,我们有时会遇到需要控件闪烁和停止的问题,这个用xml是可以实现的,但是为了在使用时控制方便,这里我写了一个工具类,方便在代码中控制view的闪烁与停止。
本文将涉及以下类容
1. 闪烁实现原理
2. 在MainActivity中的使用
3. 效果图和项目结构图
实现过程
下面作以讲解
一.闪烁实现原理
闪烁是通过android中的动画类Animation实现的,
我在实现view闪烁动画的时候,涉及到Animation的 以下方法:
1. alphaAnimation.setInterpolator(new LinearInterpolator());
这是给动画设置插值器,默认线性插值器
要实现闪烁的话,就是一个重复的过程,于是Animation需要设置重复次数,因为是点击开始在结束之前不停止的,所以会一直重复,则设置重复次数如下:
alphaAnimation.setRepeatCount(Animation.INFINITE);
最后在设置完动画的model后启动动画:
alphaAnimation.setRepeatMode(Animation.REVERSE); view.startAnimation(alphaAnimation);
这样一个不断闪烁的动画便完成了,接下来是停止闪烁动画,Animation 有一个类似clear的方法,可以清除加在view上的而动画效果,停止闪烁动画的话,则需要这样:
view.clearAnimation();
当然,以上便是Animation实现动画实现view闪烁与停止的原理,这些只要理解就好,你不需要为怎么调用烦恼,因为我将view动画闪烁及停止的方法封装到demo中的FlashHelper中
FlashHelper类有两个公开方法,开始闪烁与停止闪烁。如果你想让你的view闪烁起来,你可以这样:
//开启闪烁,其中mTvText为view对象
FlashHelper.getInstance().startFlick(mTvText);
若想要闪烁的view停止下来,你可以这样:
//停止闪烁,其中mTvText为view对象
FlashHelper.getInstance().stopFlick(mTvText);
下面看看FlashHelper在MainActivity中是如何调用的吧.
二.在MainActivity中的使用
FlashHelper在MainActivity中使用样例如下:
package com.android.testdemo;import android.view.View;
import android.widget.Button;
import android.widget.TextView;import com.android.base.BaseActivity;import butterknife.BindView;public class MainActivity extends BaseActivity {@BindView(R.id.button1)Button mBtn1;@BindView(R.id.button2)Button mBtn2;@BindView(R.id.tv_text)TextView mTvText;@Overrideprotected int getContentViewId() {return R.layout.activity_main;}@Overrideprotected void initView() {}@Overrideprotected void initData() {}@Overrideprotected void setListener() {mBtn1.setOnClickListener(this);mBtn2.setOnClickListener(this);}@Overridepublic void onClick(View v){switch (v.getId()) {case R.id.button1:FlashHelper.getInstance().startFlick(mTvText);break;case R.id.button2:FlashHelper.getInstance().stopFlick(mTvText);break;default:break;}}@Overrideprotected void onDestroy() {super.onDestroy();}}
MainActivity的xml文件很简单,就是一个按钮点击开启闪烁,然后一个按钮点击停止闪烁,闪烁效果在一个TextView上呈现,下面也简单的给出activity_main.xml的代码吧:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.android.testdemo.MainActivity"tools:layout_editor_absoluteY="81dp"android:background="@color/white"><Button
android:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="100dp"android:text="開啓閃爍"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.501"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Button
android:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginEnd="8dp"android:layout_marginStart="8dp"android:layout_marginTop="40dp"android:text="停止閃爍"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/button1"tools:ignore="MissingConstraints" /><TextView
android:id="@+id/tv_text"android:layout_width="120dp"android:layout_height="40dp"android:layout_marginEnd="8dp"android:layout_marginStart="8dp"android:layout_marginTop="112dp"android:text="控件閃爍測試"android:gravity="center"android:background="@color/green"android:textColor="@color/black"android:textSize="14sp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/button2" /></android.support.constraint.ConstraintLayout>
ok,使用方法介绍完了,现在来看看效果图和项目结构图吧
运行效果图
项目效果图
项目结构图
项目结构图
Android代码实现控件闪烁效果
代码地址如下:
http://www.demodashi.com/demo/13162.html注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
Android代码实现控件闪烁效果相关推荐
- android通过代码设置铃声_第六十四回:Android中UI控件之SeekBar
各位看官们,大家好,上一回中咱们说的是Android中UI控件之ProgressBar的例子,这一回咱们的例子是UI控件之SeekBar.闲话休提,言归正转.让我们一起Talk Android吧! 看 ...
- android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...
1.Android手机的屏幕宽高度 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int w ...
- Android使用ListView控件问题
Android使用ListView控件问题: The application has stopped unexpectedly, please try again. 开发环境:android 1.6 ...
- Android的WebView控件载入网页显示速度慢的究极解决方案
Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] Android客户端中混搭HTML页面,会出现虽然H ...
- 004 Android之其他控件
文章目录 ListView ListView常用属性 ListView基本使用 ListView动态插入数据 ListView实现图文混排 Adapter Adapter(适配器种类) 自定义Adap ...
- android 如何拖动控件的实现
今天,简单讲讲android如何拖动控件. 之前,需要做一个功能,实现控件按照手势进行拖动,拖动到移动位置时可以进行一些操作.当时不知道怎么做,于是在网上查找了资料,终于是解决了这个问题.这里记录一下 ...
- android 动态修改控件的宽高
今天,简单讲讲android如何动态设置控件的宽高. 这个其实也比较简单,但是之前做的时候出现了问题,代码里设置的宽高是dx,需要先转成dp.下面以RelativeLayout作为例子,简单记录一下. ...
- android 画布裁剪,一种基于Android系统对UI控件进行轮廓剪裁及美化的方法与流程...
本发明涉及Android应用的技术领域,特别涉及一种基于Android系统对UI控件进行轮廓剪裁及美化的方法. 背景技术: 目前,随着智能电视的普及,Android应用层出不穷,而那些表现形式单一.传 ...
- Android中ExpandableListView控件基本使用
本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 mai ...
最新文章
- 左手程序员,右手作家:你必须会的Jupyter Notebook
- jquery_3month
- CF Theatre Square
- SilverlightCMS开发之3经典三页面CMS浮现
- Okhttp实用封装
- php程序设计经典300例,第16-20例
- OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
- SBUS协议转换芯片,SBUS转UART,sbus转rs232,sbus解码IC,zr003
- 项目启动会ppt_公司召开SAPERP项目启动会
- 搭建 Vue 开发环境
- Oracle 函数大全
- y = mapminmax(‘apply‘,x,ps)中各个参数是什么意思呢?
- Chakra-UI 学习笔记
- linux系统下questasim 10.7安装教程
- python数据处理工具-Pandas笔记
- C++学习之路抓紧跑路版(七)-动态申请内存空间
- 如何取消excel密码_Excel表格技巧—Excel表格如何取消密码
- 阿里云更换系统盘(公共镜像)
- 2022年7月份模拟考题解答
- Cookie原理详解
热门文章
- mysql memory优点_MySQL Memory存储引擎:优势及性能测试
- STM32F103:一.(3)IO方向
- 09.QT应用程序启动外部exe文件
- android update sdk --no-ui,CircleCI Android constraintLayout不起作用
- 【Pre蓝桥杯嵌入式】【STM32】Unkown device
- C语言中fscanf的函数,C语言fprintf()和fscanf()函数
- 数据结构与算法分析(一)——C++文件读写+py文件读写
- Linux的capability深入分析(1)
- 图像处理之三---摄像头灰度值处理
- linux指令 sed,Linux命令sed