一、Android动画的分类

在学习Android动画时,一般Android的动画分类分为:
1、TweenAnimation补间动画(Alpha,Scale,Translate,Rotate)
2、FrameAnimation帧动画
3、PropertyAnimation属性动画

二、TweenAnimation动画

1、主要的属性:
①alpha,渐变透明动画效果
②scale,渐变尺寸伸缩动画效果
③translate,画面转化位置动画效果
④rotate,画面转移旋转动画效果
(在xml文件中定义是新建一个anim的包)
2、alpha学习

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><alpha
        android:duration="1000"android:fromAlpha="0.0"android:toAlpha="1.0" /><!--透明度控制动画效果 alpha浮点型值:fromAlpha 属性为动画起始时透明度toAlpha   属性为动画结束时透明度说明: 0.0表示完全透明1.0表示完全不透明以上值取0.0-1.0之间的float数据类型的数字长整型值:duration  属性为动画持续时间说明:     时间以毫秒为单位-->
</set>

3、scale学习

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><scale
        android:duration="1000"android:fillAfter="false"android:fromXScale="0.0"android:fromYScale="0.0"android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:pivotX="50%"android:pivotY="50%"android:toXScale="1.4"android:toYScale="1.4" /></set><!--尺寸伸缩动画效果 scale属性:interpolator 指定一个动画的插入器在我试验过程中,使用android.res.anim中的资源时候发现有三种动画插入器:accelerate_decelerate_interpolator  加速-减速 动画插入器accelerate_interpolator        加速-动画插入器decelerate_interpolator        减速- 动画插入器其他的属于特定的动画效果浮点型值:fromXScale 属性为动画起始时 X坐标上的伸缩尺寸    toXScale   属性为动画结束时 X坐标上的伸缩尺寸     fromYScale 属性为动画起始时Y坐标上的伸缩尺寸    toYScale   属性为动画结束时Y坐标上的伸缩尺寸    说明:以上四种属性值    0.0表示收缩到没有 1.0表示正常无伸缩     值小于1.0表示收缩  值大于1.0表示放大pivotX     属性为动画相对于物件的X坐标的开始位置pivotY     属性为动画相对于物件的Y坐标的开始位置说明:以上两个属性值 从0%-100%中取值50%为物件的X或Y方向坐标上的中点位置长整型值:duration  属性为动画持续时间说明:   时间以毫秒为单位布尔型值:fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用-->

4、translate*学习*

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><translate
        android:duration="2000"android:fromXDelta="30"android:fromYDelta="30"android:toXDelta="-80"android:toYDelta="300" /><!--translate 位置转移动画效果整型值:fromXDelta 属性为动画起始时 X坐标上的位置    toXDelta   属性为动画结束时 X坐标上的位置fromYDelta 属性为动画起始时 Y坐标上的位置toYDelta   属性为动画结束时 Y坐标上的位置注意:没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物             长整型值:duration  属性为动画持续时间说明:   时间以毫秒为单位--></set>

5、rotate学习

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><rotate
        android:duration="3000"android:fromDegrees="0"android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:pivotX="50%"android:pivotY="50%"android:toDegrees="+350" /><!--rotate 旋转动画效果属性:interpolator 指定一个动画的插入器在我试验过程中,使用android.res.anim中的资源时候发现有三种动画插入器:accelerate_decelerate_interpolator   加速-减速 动画插入器accelerate_interpolator               加速-动画插入器decelerate_interpolator               减速- 动画插入器其他的属于特定的动画效果浮点数型值:fromDegrees 属性为动画起始时物件的角度    toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   说明:当角度为负数——表示逆时针旋转当角度为正数——表示顺时针旋转              (负数from——to正数:顺时针旋转)   (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转)       pivotX     属性为动画相对于物件的X坐标的开始位置pivotY     属性为动画相对于物件的Y坐标的开始位置说明:        以上两个属性值 从0%-100%中取值50%为物件的X或Y方向坐标上的中点位置长整型值:duration  属性为动画持续时间说明:       时间以毫秒为单位--></set>

6、在代码中使用xml中的动画

//渐变动画Animation _alphaAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.alpha_anim);mImageView.startAnimation(_alphaAnim);//旋转动画Animation _rotateAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.rotate_anim);mImageView.startAnimation(_rotateAnim);//移动动画Animation _translateAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.translate_anim);mImageView.startAnimation(_translateAnim);//缩放动画Animation _scaleAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.scale_anim);mImageView.startAnimation(_scaleAnim);

7、java代码中也是可以定义动画的,但是官方比较推荐在xml中定义动画
这里以Alpha为例,动态创建动画
AlphaAnimation

① AlphaAnimation类对象定义
private AlphaAnimation myAnimation_Alpha② AlphaAnimation类对象构造
//第一个参数fromAlpha为 动画开始时候透明度
//第二个参数toAlpha为 动画结束时候透明度
AlphaAnimation(float fromAlpha, float toAlpha)
//说明:0.0表示完全透明,1.0表示完全不透明
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);③ 设置动画持续时间
//设置时间持续时间为 5000毫秒
myAnimation_Alpha.setDuration(5000);

8、tweenAnimation的多个动画一起使用AnimationSet
①在xml中可以嵌套使用:

<set android:shareInterpolator="false"><scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromXScale="1.0"android:toXScale="1.4"android:fromYScale="1.0"android:toYScale="0.6"android:pivotX="50%"android:pivotY="50%"android:fillAfter="false"android:duration="700" /><set android:interpolator="@android:anim/decelerate_interpolator"><scale
           a强调内容ndroid:fromXScale="1.4"android:toXScale="0.0"android:fromYScale="0.6"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:startOffset="700"android:duration="400"android:fillBefore="false" /><rotate
           android:fromDegrees="0"android:toDegrees="-45"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:startOffset="700"android:duration="400" /></set>
</set>

②在java代码中使用:

AnimationSet _set = new AnimationSet(true);//渐变动画Animation _alphaAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.alpha_anim);//旋转动画Animation _rotateAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.rotate_anim);//移动动画Animation _translateAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.translate_anim);//缩放动画Animation _scaleAnim = AnimationUtils.loadAnimation(TweenActivity.this, R.anim.scale_anim);_set.addAnimation(_alphaAnim);_set.addAnimation(_rotateAnim);_set.addAnimation(_translateAnim);_set.addAnimation(_scaleAnim);mImageView.startAnimation(_set);

三、FrameAnimation动画

Frame动画就比较简单了,和放电影是类似的,先放多个图片,然后一帧一帧的播放,在xml文件中定义是在drawable包中
1、在drawable中定义文件:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"><item
        android:drawable="@mipmap/card_flip_back_image"android:duration="1000" /><item
        android:drawable="@mipmap/card_flip_back_image1"android:duration="1000" /><item
        android:drawable="@mipmap/card_flip_front_image"android:duration="1000" /><item
        android:drawable="@mipmap/card_flip_front_image1"android:duration="1000" />
</animation-list>

2、在布局文件中使用src属性引入动画文件

<ImageView
        android:id="@+id/frame_anim_image_view"android:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/frame_animation" />

3、在代码中调用

//定义image
mFrameAnimImageView = (ImageView) findViewById(R.id.frame_anim_image_view);
//使用动画AnimationDrawable _drawable = (AnimationDrawable)      mFrameAnimImageView.getDrawable();//开始动画_drawable.start();//结束动画//_drawable.stop();

四、PropertyAnimation属性动画

链接:http://www.jianshu.com/p/2c9887fe8c6f

Android的动画简单学习相关推荐

  1. Android Surface 系统简单学习

    ####Activity的View 在应用开发的时候,我们需要设置Activity的View,就是Activity视图的部分.而Activity内部的View又究竟是怎样一个结构呢?怎么跟更贴近底层的 ...

  2. android+属性动画+高度,android 自定义view+属性动画实现充电进度条

    近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和 ...

  3. Android自定义动画学习,实现左右摇摆动画

    (转载)http://johnnyg.iteye.com/blog/2074464 我们都知道Android SDK给我们提供了4种常用的动画效果分别是: AlphaAnimation:透明度变化动画 ...

  4. android 仿脉搏柱动画,Android属性动画学习笔记

    这段时间正好要做些动画,于是把属性动画重新学习了一遍,做些总结 1. 前言 Android动画分为Frame Animation,Tweened Animation ,Property Animati ...

  5. android动画背景,Android开发之背景动画简单实现方法

    在Android开发中,我们都会接到项目的业务需求,实现应用程序背景动画的效果,接下来,爱站技术频道小编带给大家的Android开发之背景动画简单实现方法. 1.先创建动画层,有三张图片 androi ...

  6. android 破碎酷炫动画,【Android效果集】学习ExplosionField之粒子破碎效果

    编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 前段时间 ...

  7. Android简单学习使用PictureSelector框架图片选取裁剪

    Android简单学习使用PictureSelector框架图片选取裁剪 关于 效果图 第一步,添加引用 第二步,新建activity_main.xml布局文件 第三步,修改MainActivity. ...

  8. 【学习笔记】Android视图动画学习

    2019独角兽企业重金招聘Python工程师标准>>> 1.Android View动画框架 Animation框架定义了透明度.旋转.缩放和位移几种常见的动画. 实现原理:每次绘制 ...

  9. android 三维动画效果,9款令人惊叹的HTML5 3D动画应用

    原标题:9款令人惊叹的HTML5 3D动画应用 之前我们已经向大家分享了很多HTML5动画应用了,大部分都非常炫酷,也有一小部分是很实用的.今天我们要向各位HTML5动画爱好者介绍更多的HTML5 3 ...

  10. android 揭示动画_遗传编程揭示具有相互作用的多元线性回归

    android 揭示动画 We all had some sort of experience with linear regression. It's one of the most used re ...

最新文章

  1. .NET 数据访问架构指南(转)
  2. [UE4]自动旋转组件
  3. lintcode 有效的括号序列
  4. WPF中的动画——(四)缓动函数
  5. Linux Kbuild文档 4
  6. 【剑指offer】面试题40:数组中只出现一次的数字
  7. 用Python及深度学习实现iPhone X的FaceID功能
  8. 重写慢日志解析程序,实现打印慢SQL信息及其所属数据库
  9. Openbiz Cubi 企业级应用程序开发(一)
  10. 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界
  11. 判断一棵树是否为完全二叉树的算法c语言_[二叉树的面试算法](六)之二叉树结构判断-相关题型总结(4题)...
  12. Pytext简介:facebook的基于PyTorch的NLP框架
  13. Atitit View事件分发机制
  14. 解决python3报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 1: ordinal not in ra
  15. Linux 程序 动态库 静态库依赖关系
  16. Windows设置开机自启动的三种方式
  17. linux系统下回收站,Linux怎么开启回收站功能
  18. 超级爆笑学生作文大全
  19. 斗地主命令版本php,命令行版的斗地主你玩过没?
  20. pb 选择多行数据窗口数据_PB数据窗口中自动换行

热门文章

  1. Oclint 安装指导
  2. SylixOS 任务调度源代码分析
  3. Java实现大数操作
  4. 0-1背包问题(需要输出具体背包序号)
  5. 牛客练习赛26---未完
  6. java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
  7. iso安装器_mac怎么装双系统|mac电脑安装双系统教程
  8. jquery 多个class操作
  9. jquery chosen插件的使用(搜索查询下拉列表,多选)
  10. [个人笔记] 关于linux的常见问题合集