一起Talk Android吧(第四百八十四回:使用逐帧动画实现倒计时效果)
文章目录
- 概念介绍
- 使用方法
- 注意事项
各位看官们大家好,上一回中咱们说的例子是"如何修改Spinner的倒三角",这一回中咱们说的例子是" 使用逐帧动画实现倒计时效果"。闲话休提,言归正转,让我们一起Talk Android吧!
概念介绍
我们在前面章回中介绍了各种类型的视图动画,这些动画都可以归类为补间动画,本章回将介绍另外一种视图动画:逐帧动画。
逐帧动画类似电影,电影是按照一定的速度依次播放每张胶片中的画面,逐帧动画则是按照一定的速度一帧一帧地播放帧中的内容,进而组成一个完整的动画。我们需要做的是添加帧,以及的控制帧的播放速度。
使用方法
明白逐帧动画的概念后,我们通过文字结合代码的方式来介绍如何使用逐帧动画;
- 在drawable目录下创建资源文件fram_anima.xml,该资源文件就是动画文件,文件中使用
<animation-list>
标签和它的item
属性;
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><item android:drawable="@drawable/ic_num6" android:duration="1000"></item><item android:drawable="@drawable/ic_num5" android:duration="1000"></item><item android:drawable="@drawable/ic_num4" android:duration="1000"></item><item android:drawable="@drawable/ic_num3" android:duration="1000"></item><item android:drawable="@drawable/ic_num2" android:duration="1000"></item><item android:drawable="@drawable/ic_num1" android:duration="1000"></item>
</animation-list>
- 创建一个ImageView控件,并且把动画文件赋值给控件的src属性(background属性也可以);
<ImageViewandroid:id="@+id/id_iv_frame_anima"android:src="@drawable/frame_anima"android:layout_width="56dp"android:layout_height="56dp">
</ImageView>
- 在代码中获取ImageView控件以及控件中的动画资源;
- 使用动画资源播放动画;
mImageViewFrameAnima = mBinding.idIvFrameAnima;
AnimationDrawable animationDrawable = (AnimationDrawable) mImageViewFrameAnima.getDrawable();
animationDrawable.start();
我们在动画文件中添加了6个属性,每个属性是一张图片,图片的内容从6到1.运行动画就会出现从6到1的倒计时效果,并且动画反复运行。我们在这里就不演示程序的运行结果了,希望大家自己动手去实践。
注意事项
在使用逐帧动画时还有一些细节需要注意,接下来我们详细说明:
<animation-list>
标签中的oneshot
用来控制动画的播放次数,如果值为true表示只播放一次动画,如果值为false表示无限次地播放动画,默认值为false;- 属性表示动画中的一帧,它的
duration
表示该帧的播放时间,单位为毫秒; - 代码中逐帧动画的类型为
AnimationDrawable
类型,在从图片控件中获取动画文件时需要做类型转换; - 逐帧动画与其它视图动画的类型不同,使用方法也不同;
看官们,关于"使用逐帧动画实现倒计时效果"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
一起Talk Android吧(第四百八十四回:使用逐帧动画实现倒计时效果)相关推荐
- 一起Talk Android吧(第一百八十六回:Android中的AsyncTask机制五)
各位看官们大家好,上一回中咱们说的是Android中AsyncTask机制的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在前面章回中通过具体的 ...
- 一起Talk Android吧(第四百五十九回:SeekBar补充用法二)
文章目录 修改进度的步进值 自定义SeekBar 围魏救赵 各位看官们大家好,上一回中咱们说的例子是"SeekBar补充用法",这一回中咱们继续说该例子.闲话休提,言归正转,让我们 ...
- android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三
各位看官们大家好,上一回中咱们说的是Android中自定义ProgressBar的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在上一回是通过自 ...
- 第一百八十四节,jQuery-UI,验证注册表单
jQuery-UI,验证注册表单 html <form id="reg" action="123.html" title="会员注册" ...
- 不朽凡人 正文 第四百八十九章 三个条件
"咔嚓!"劳采早已顾不上规则符,仙元疯狂鼓动,就是精血也开始燃烧.只是没等他挣脱莫无忌这一拳,他的规则符就直接碎裂. "嘭!"一道血雾闪过,劳采堂堂一个金仙修士 ...
- 上班的第四百八十六天——帮会模块
最近学的东西都是比较虚,在实际开发中用到的都比较少,所以为了让试用期能够过得妥妥的,我应该要学习一下业务知识的.一个游戏,最基础的无非也就是那几个模块:背包模块.帮会模块.任务模块.技能模块.场景模块 ...
- 我生命中的四百八十五天——写给曾经的恋人
相遇 "你好呀,每一个可能遇见的你~ 最爱拿一只最普通的的手机追寻日光,留住每一幕最美的日出和日落 喜欢静,宁静方可致远:喜欢在自然和在音乐中追寻自我:喜欢以分享记录世界,一心想做一个灵魂比 ...
- 不朽凡人 第四百二十四章 再回半仙域
莫无忌笑了笑,"两位道友倒是和我一样,我也是得罪了洪斧及,这才来到这里." "那我们联合在一起,我们这边有了六个人,我相信离开死亡矿区也有生存之地了."听到莫无 ...
- 一起talk C栗子吧(第一百八十六回:C语言实例--反正弦函数)
各位看官们,大家好,上一回中咱们说的是打印常用的ASCII码对照表的例子,这一回咱们说的例子是:反正弦函数 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,反正弦函数asin是一种数学函 ...
最新文章
- Eclipse: “Update SVN cache” hangs and locks up
- TCL 过程proc
- Redis 集群规范
- STL 二分查找 upper_bound和lower_bound用法
- .NET Core容器化开发系列(一)——Docker里面跑个.NET Core
- USACO-Section2.1 Ordered Fractions(简单数据处理)
- 如何使用groff -me在Linux上格式化学术论文
- html快捷保存图片,如何使用360浏览器快速保存图片
- 一文搞定移动端适配!
- Linux vgchange 命令
- Nginx出现403 forbidden (13: Permission denied)报错的四种原因
- CSND如何转载别人的文章
- Latex 带圈的序号
- 判断一个数是否为素数常见的四种方法
- html5图片弹性布局,HTML5 使用弹性框布局实现可选择和压缩的网格
- 第十六届全国大学生智能车竞赛三个创意组别总决赛比赛成绩
- rtx3050参数 rtx3050相当于gtx什么显卡 rtx3050显卡什么水平
- 生日快乐祝福。我遇见你 都是人间最好的事
- 基于h5的航空订票系统的设计与实现
- 你一年就工作一天还想请假......