Animations的使用(3)

1 AnimationSet的使用方法

什么是AnimationSet

1 AnimationSet是Animation的子类

2 一个AnimationSet包含了一系列的Animation

3 针对AnimationSet设置一些Animation的常见属性(如StartOffset,duration等),可以被包含在AnimationSet当中的Animation继承

使用步骤:(类似1中的例子 只不过含有2个动画效果)

  1. AnimationSet animationSet = new AnimationSet(ture);
  2. AlpahaAnimation alpha = new AlphaAnimation(...);
  3. RotateAnimation rotate = new RotateAnimation(...);
  4. animationSet.addAnimation(alpha);
  5. animationSet.addAnimaion(rotate);
  6. animationSet.setDuration(2000);
  7. animationSet.setStartOffset(500);
  8. imageView.startAnimation(animationSet);
	AnimationSet animationSet = new AnimationSet(ture);
AlpahaAnimation alpha = new AlphaAnimation(...);
RotateAnimation rotate = new RotateAnimation(...);
animationSet.addAnimation(alpha);
animationSet.addAnimaion(rotate);
animationSet.setDuration(2000);
animationSet.setStartOffset(500);
imageView.startAnimation(animationSet);

2 Interpolator的使用方法

Interpolator定义了动画变化速率,在Animations框架中定义了以下几种Interpolator

AccelerateDecelerateInterpolator:在动画开始和结束的地方速率变化较慢,中间的时候加速

AccelerateInterpolator:在动画开始的地方速率改变较慢,然后加速

CycleInterpolator:动画循环播放特定次数,速率改变沿正弦曲线

DecelerateInterpolator:在动画开始的地方速率改变较慢,然后减速

LinearInterpolator:以均匀的速率改变

设置的地方就在set标签中的 android:interpolator="@android:anim/accelerate_interpolator"

而之后还有一个android:shareInterpolator="true" 从名字就可以看到这是为set中所有的动画设置Interpolator

如果要单独设置 则将shareInterpolator设为false 然后为每个动画中单独定义Interpolator

以上是在xml中设置,如果要在代码中设置

animationSet.setInterpolator(new AccelerateInterpolator());(也可以单独设置)

注意在AnimationSet的构造方法中有一个boolean参数,这个参数就是shareInterpolator的设定

3 Frame-By-Frame Animations的使用方法

1 在res/drawable中创建一个xml文件,定义Animation的动画播放序列 anim_nv.xml

  1. <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:oneshot="false">
  3. <item android:drawable="@drawable/nv1"
  4. android:duration="500" />
  5. <item android:drawable="@drawable/nv2"
  6. android:duration="500" />
  7. <item android:drawable="@drawable/nv3"
  8. android:duration="500" />
  9. <item android:drawable="@drawable/nv4"
  10. android:duration="500" />
  11. </animation-list>
	<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/nv1"
android:duration="500" />
<item android:drawable="@drawable/nv2"
android:duration="500" />
<item android:drawable="@drawable/nv3"
android:duration="500" />
<item android:drawable="@drawable/nv4"
android:duration="500" />
</animation-list>

2 为ImageView设置背景资源

  1. imageView.setBackgroundResource(R.drawable.anim_nv);
	imageView.setBackgroundResource(R.drawable.anim_nv);

3 通过ImageView得到AnimationDrawable

  1. AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
	AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();

3 执行动画

  1. animationDrawable.start();
	animationDrawable.start();

AnimationSet的使用的更多相关文章

  1. Android动画之Interpolator和AnimationSet

    AnimationSet可以加入Animation,加入之后设置AnimationSet对加入的所有Animation都有效. AnimationSet anim=new AnimationSet(t ...

  2. AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听

    在前面介绍了几种动画效果:透明动画效果(AlphsAnimation).移动动画效果(TranslateAnimation).旋转动画效果(RotateAnimation).缩放动画效果(ScaleA ...

  3. 通过AnimationSet设置动画

    在代码中可以通过set来设置多个动画属性,这里分开来设置不同的属性. 首先先贴上布局文件,里面的imageview是用来做动画的控件 <RelativeLayout xmlns:android= ...

  4. 通过AnimationSet 同步或一部播放多个动画 Android 属性动画(Property Animation) 完全解析 (下)

    AnimationSet提供了一个把多个动画组合成一个组合的机制,并可设置组中动画的时序关系,如同时播放,顺序播放等. 以下例子同时应用5个动画: 播放anim1: 同时播放anim2,anim3,a ...

  5. 虾扯蛋:Android View动画 Animation不完全解析

    本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...

  6. app引导页(背景图片切换加各个页面动画效果)

    前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求 ...

  7. Android开发学习——动画

    帧动画> 一张张图片不断的切换,形成动画效果* 在drawable目录下定义xml文件,子节点为animation-list,在这里定义要显示的图片和每张图片的显示时长              ...

  8. Android动画效果之Tween Animation(补间动画)

    前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...

  9. Android基础总结(十一)

    Fragment(重要) 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity fragmen ...

随机推荐

  1. UVA 12083 POJ 2771 Guardian of Decency

    /* http://acm.hust.edu.cn/vjudge/contest/view.action?cid=71805#problem/C */ 性质: [1]二分图最大点独立数=顶点数-二分图 ...

  2. Linux设置开机服务自动启动

    [root@localhost ~]# chkconfig --list     显示开机可以自动启动的服务[root@localhost ~]# chkconfig --add ***  添加开机自 ...

  3. hdu_2842_Chinese Rings(矩阵快速幂)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 题意:解开第k个环需要先解开前(k-2)个环,并留有第(k-1)环.问解开n环最少需要几步. 题 ...

  4. Bother

    Bother Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submis ...

  5. AutoMapper 自动映射工具

    先引用对应的DLL. 11.转换匿名对象 结合LINQ映射新的实体类. using System;using System.Collections.Generic;using System.Linq; ...

  6. [转]php 在各种web服务器的运行模式

    一.php在apache中运行模式 php在apache中一共有三种工作方式:CGI模式.FastCGI模式.Apache 模块DLL) 以下分别比较: 1. CGI模式与模块模式比较: php在ap ...

  7. caffe的matlab接口一览表

    blob 简述 方法: shape reshape get_diff set_diff 私有方法: check_and_preprocess_shape check_and_preprocess_da ...

  8. oracle数据库字符集的修改

    本文摘自:http://blog.csdn.net/nsj820/article/details/65711051.改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表 Star ...

  9. php添加gd

    一 GD简介: php处理图形的扩展库,提供了一系列用来处理图片的API.如果开发过程中发现有页面验证码不能显示,则要考虑检查phpinfo(),是否支持GD库. 二 思路: 网上发现添加GD库的方法 ...

  10. ado vb6

    http://www.cnblogs.com/ywb-lv/articles/2343444.html http://stackoverflow.com/questions/3334102/use-t ...