作为Android开发者,动画是非常重要的知识点,本文主要从入门角度来探索动画。 Android的动画主要包括三大类:逐帧(Frame)动画,补间(Tween)动画,属性动画。

1. 逐帧(Frame)动画

逐帧动画是最容易理解,最简单的动画。但需要把动画过程的每一帧静态图片都放到资源文件夹res/drawbale下,然后由Android来控制依次显示这些静态图片,利用人眼“视觉暂留”的原理,从而产生“动画”的错觉。实现方式与电影、动漫的原理一样。

每一帧的图片,可以是比如.jpg, .png格式的图片文件,也可以是通过xml定义的图形。下面通过一个实例来讲解逐帧动画的使用。

1.1 动画资源文件

frame_animation.xml放在文件夹res/drawable/下,该逐帧动画包含3张图片wheel0.png, wheel1.png, wheel2.png:

1.2 调用方法

ImageView img = (ImageView)findViewById(R.id.wheel_image);

img.setBackgroundResource(R.drawable.frame_animation);

AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

frameAnimation.start();

1.3 参数说明

android:oneshot, true:动画只播放一遍, false:循环播放;

android:duration:该帧时长,单位ms(毫秒)。

2. 补间(Tween)动画

补间动画,只需指定动画开始帧、结束帧,而对于动画中间的过程,都有系统计算来填充的,而无需定义中间的每一帧。 动画变化主要包括4类型: 透明度动画(Alpha),缩放动画(Scale),位移动画(Translate),旋转动画(RotateAnaimation)

1.1 动画资源文件

tween_animation.xml放在文件夹res/anim/下, 该动画同时包括透明度,缩放,位移,旋转4种变化,当然也可以是其中一种,或几种变化的组合。

1.2 调用方法

ImageView img = (ImageView)findViewById(R.id.wheel_image);

Animation tweenAnimation = AnimationUtils.loadAnimation(this, R.anim.tween_animation);

img.startAnimation(tweenAnimation);

1.3 参数说明

android:interpolator 插值器,用于指定动画的效果; 插值器原理,请移步Android动画之原理篇(三);

android:shareInterpolator, true:所有子元素共享同一插值器;false不共享;

android:fillBefore, true:动画执行完成后停留在动画的第一帧;

android:fillAfter , true:动画执行完成后停留在动画的最后一帧;

android:fillEnabled,true:fillBefore/fillAfter才能生效

android:duration, 动画持续时长,每一个动画都可以单独指定duration;

alpha,透明度动画,其中0表示完全透明,1表示完全不透明:

fromAlpha: 起始透明度

toAlpha : 结束透明度

scale,缩放动画,其中0表示收缩到无,1表示正常无缩放:

fromXScale: 起始X坐标的缩放比例

toXScale : 结束X坐标的缩放比例

fromYScale: 起始Y坐标的缩放比例

toYScale : 结束Y坐标的缩放比例

pivotX : 轴中点X坐标的位置比例

pivotY : 轴中点Y坐标的位置比例

translate,位移动画:

fromXDelta: 起始X方向位置比例

toXDelta : 结束X方向位置比例

fromYDelta: 起始Y方向位置比例

toYDelta : 结束Y方向位置比例

rotate, 旋转动画:

fromDegrees: 起始角度,单位度

toDegrees : 结束角度,单位度

pivotX : 旋转中点X坐标的位置比例

pivotY : 旋转中点Y坐标的位置比例

3. 属性动画

属性动画,是补间动画的增强版,但更加灵活。可直接修改任何属性,使之形成动画,功能非常强大,也是最常用的动画。下面举个简单的例子:

ObjectAnimator anim = ObjectAnimator.ofFloat(targetObject, "alpha", 0f, 1f);

anim.setDuration(1000);

anim.start();

android动画入门,Android动画之入门篇(一)相关推荐

  1. Android 属性动画(一)新手入门

    一.属性动画简介 Android 中动画有很多种,属性动画就是其中的一种.所谓的属性动画,就是在指定的时间内,通过改变对象的属性达到变化效果的动画.在 Android 中,属性动画系统是一个强健的框架 ...

  2. android动画入门,Android动画基础总结

    Android动画主要分为两种,视图动画和属性动画,视图动画又分为补间动画和帧动画两种.补间动画包含透明动画(Alpha),缩放动画(Scale),平移动画(Translate),旋转动画(Rotat ...

  3. Android自定义控件开发入门与实战(7)SVG动画,android底层架构

    move to (50,23) line to(100,25) 而坐标并不是用width和height的坐标,而是viewportWidth和viewportHeight的坐标,(50,23)中50表 ...

  4. Android控件入门-动画效果(透明度动画)

    透明度动画(alpha): 第一种方式: xml: <Buttonandroid:id="@+id/btn_alpha"android:layout_width=" ...

  5. android 一分钟倒计时动画,Android View篇之启动页倒计时动画的实现

    Hello,小伙伴们大家好,今天介绍一个很简单的倒计时动画,仿酷狗音乐的启动页倒计时效果,也是大多数APP在用的一个动画,来看看效果图: 在这里插入图片描述 整体的思路就是用一个平滑的帧动画来画圆弧就 ...

  6. android+下落+动画,完美起航-Android面试题之动画+事件处理篇

    前言 提示:秋招在即,计蒙准备在国庆假期结束前整理一套Android初级面试题籍,希望对大家有所帮助 提示:以下是本篇文章正文内容 动画 1.Android 中的动画有哪几类 帧动画.补间动画.属性动 ...

  7. Android面试题之动画+事件处理篇,安卓消息分发机制

    关于整理问题 前言 ================================================================= 提示:秋招在即,计蒙准备在国庆假期结束前整理一套 ...

  8. Android面试题之动画+事件处理篇

    动画+事件处理篇 前言 动画 1.Android 中的动画有哪几类 2.动画能组合在一起使用么? 3.插值器的种类有哪些? 4.如何自定义插值器 5.如何修改 Activity 进入和退出动画 事件处 ...

  9. Android 过反抓包总结入门篇

    Android 过反抓包总结入门篇 做协议分析少不了抓包,但是对于新入门我们来说,这是一大难题,网上各种各样的工具不少.但是如果遇到反抓包,那就芭比Q了.但是一些简单的反抓包机制还是很好过的. 1.要 ...

最新文章

  1. [bzoj1064][Noi2008]假面舞会
  2. Cookie的生命周期
  3. 改善代码设计 —— 组织好你的数“.NET研究”据(Composing Data)
  4. (十四)json、pickle与shelve模块
  5. ca证书 linux 导入_Linux CA证书服务器搭建
  6. Groovy 设计模式 -- 保镖模式
  7. Linux的Nginx三:类型|特点
  8. [C++11]返回值类型后置
  9. JavaScript | 声明数组并在每个循环中使用的代码
  10. ThreadLocal与Synchronized的用法
  11. 拓扑容差如何修改_如何做到全屋WIFI无死角,MESH组网对比有哪些优势?
  12. 【路径规划】基于matlab粒子群算法机器人栅格路径规划【含Matlab源码 018期】
  13. 降维系列之 AutoEncoder 自动编码器
  14. win7如何添加终端服务器,Win7怎么添加windows超级终端?
  15. STM32L4系列单片机如何使用RTC唤醒定时器进入Standby低功耗模式并唤醒+整机功耗测试
  16. 电脑PHP动画制作画板,Canvas在线画图—简单制作一个画板
  17. 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风!
  18. 层次、网状、关系模型
  19. 【Apache运维基础(5)】Apache的Rewrite攻略(2)
  20. 教你在word中为一句话同时加上横线和波浪线

热门文章

  1. 协同过滤算法_推荐系统(5):协同过滤算法的基本思想
  2. linux系统io编程,Linux系统编程(1) —— 文件IO
  3. explain分析SQL查询
  4. (82)zabbix如何选择适合的监控类型
  5. 1.Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server(tomcat突然用不了)...
  6. JDBC连接池和DBUtils
  7. 1到n的整数中,1出现的次数
  8. 自定义组件-BreadcrumbTreeView 的使用
  9. oracle DB_LINK
  10. 【小安翻唱】Dreams-黑之契约者 双蛋快乐~顺便来拉票咯!