Android动画
来源:互联网 发布:开票软件为何启动不了 编辑:程序博客网 时间:2024/05/16 06:58
逐帧(Frame)动画
逐帧动画就是把动画过程的静态图片收集起来,然后由Android依次显示这些图片,有动画效果。
如何定义动画?
在drawable目录下新建xml文件,在该文件中用定义动画,在元素中,使用子元素来定义每张图片,以及图片的显示时间。
如何启动动画?
用ImageView来显示动画。通过findViewById()找到动画xml文件,转成ImageView;然后用ImageView对象获取背景,转成AnimationDrawable;然后调用AnimationDrawable对象的start()方法可以启动动画,调用stop()方法可以停止动画。
补间(Tween)动画
补间动画就是指开发者只需要提供动画开始,动画结束等关键帧,而动画变化的中间帧则由系统计算补齐。
开发者需要定义:动画开始,动画结束,持续时间。
补间动画的5种效果
AlphaAnimation:透明度渐变效果
ScaleAnimation:缩放渐变效果
TranslateAnimation:位移渐变效果
RotateAnimation:旋转渐变效果
AnimationSet:组合渐变
Interpolator
用来控制动画的变化速度,可以理解成动画渲染器,当然我们也可以自己实现Interpolator 接口,自行来控制动画的变化速度,而Android中已经为我们提供了五个可供选择的实现类:
- LinearInterpolator:动画以均匀的速度改变
- AccelerateInterpolator:在动画开始的地方改变速度较慢,然后开始加速
- AccelerateDecelerateInterpolator:在动画开始、结束的地方改变速度较慢,中间时加速
- CycleInterpolator:动画循环播放特定次数,变化速度按正弦曲线改变
- DecelerateInterpolator:在动画开始的地方改变速度较快,然后开始减速
这些属性主要写在xml文件中
启动动画步骤
- 获取到View对象
- 通过AnimationUtils.loadAnimation()获取到动画
- View对象调用startAnimation()开启动画
属性动画
出现的原因
改进补间动画的缺点,它实际上是一种不断地对值进行操作的机制,并将值赋值到指定对象的指定属性上,可以是任意对象的任意属性。
写法
- 代码编写
- XML编写
用法
- ValueAnimator
初始值和结束值之间的动画过渡就是由ValueAnimator这个类来负责计算的。它的内部使用一种时间循环的机制来计算值与值之间的动画过渡,我们只需要将初始值和结束值提供给ValueAnimator,并且告诉它动画所需运行的时长,那么ValueAnimator就会自动帮我们完成从初始值平滑地过渡到结束值这样的效果。
步骤:
1. 通过ofFloat或者onInt()等方法获得ValueAnimator 对象2. 通过setXxx()等一些列方法进行设置相关属性3. 调用start()方法启动
- ObjectAnimator
它可以对任意对象的任意属性进行动画操作,继承自ValueAnimator
步骤:
1. 通过ofFloat()或者ofInt()方法创建ObjectAnimator实例,该方法的参数:参数1代表要操作的object对象,参数2代表要对该对象的哪个属性进行操作,后面的参数就不固定长度了。2. 通过setXxx()一系列方法进行相关设置3. 调用start()方法启动
Animator监听器
addListener(),可以实现new AnimatorListener() 中的4个方法,也可以使用new AnimatorListenerAdapter(),选择需要的方法去实现。
- XML编写动画
标签如下
1. <animator> 对应代码中的ValueAnimator2. <objectAnimator> 对应代码中的ObjectAnimator3. <set> 对应代码中的AnimatorSet
步骤:
1. 在res目录下新建animator文件夹,新建xml文件,完成动画2. 通过AnimatorInflater.loadAnimator()方法来获取到Animator对象3. 调用start()方法启动
- Android动画--视图动画
- Android动画--属性动画
- android动画 -- 属性动画
- Android:动画:tween动画
- Android:动画:Frame动画
- Android动画动画二
- Android动画-属性动画
- Android动画【属性动画】
- Android动画-帧动画
- Android动画--帧动画
- Android动画--属性动画
- Android动画-View动画
- android 动画 -- tween动画
- android 动画
- android动画
- android动画
- android动画
- Android动画
- Express express-session
- 自己的科技微博第一篇
- ubuntu16.04 配置
- Add Digits
- Struts2+spring+Mybatis,前台向后台传值乱码的问题
- Android动画
- web前端之CSS布局的重要性
- 基于HTTP的单线程文件下载功能实现
- yii2.0 写报错页面
- 发布--灰度升级dubbo provider
- Android N Audio: AF的设备加载
- Hackerrank Connect the country
- ,快速乘,快速幂,矩阵快速幂(求斐波那契数列)
- JavaScript之对象赋值(浅谈一道面试题)