帧动画的使用需要在xml文件中指定每一帧所对应的图片

animation-list写法如下:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:drawable="@drawable/b1"
android:duration="200"/>
<item
android:drawable="@drawable/b2"
android:duration="200"/>
<item
android:drawable="@drawable/b3"
android:duration="200"/>
<item
android:drawable="@drawable/b4"
android:duration="200"/>
<item
android:drawable="@drawable/b5"
android:duration="200"/>
<item
android:drawable="@drawable/b6"
android:duration="200"/> </animation-list>

播放帧动画的java代码如下:

iv.setImageResource(R.drawable.myanimationlist);
AnimationDrawable animation = (AnimationDrawable) iv.getDrawable();
animation.start(); // 开始播放动画

旋转,平移,缩放,渐变这四种补间动画的写法很相似,统一列在下面:

public void rote(View v) {
RotateAnimation rotateAnimation = new RotateAnimation(0, 180,
iv.getWidth() / 2, iv.getHeight() / 2);
rotateAnimation.setDuration(2000);
iv.startAnimation(rotateAnimation);
} public void translate(View v) {
TranslateAnimation translateAnimation = new TranslateAnimation(0, 200,
0, 200);
translateAnimation.setDuration(2000);
iv.startAnimation(translateAnimation);
} public void scale(View v) {
ScaleAnimation scaleAnimation = new ScaleAnimation(0.5f, 2, 0.5f, 2,
iv.getWidth() / 2, iv.getHeight() / 2);
scaleAnimation.setDuration(2000);
iv.startAnimation(scaleAnimation); } public void alpha(View v) {
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(2000);
iv.startAnimation(alphaAnimation);
}

补间动画同时只能有一个在执行,如果想让几种补间动画同时执行的话,可以使用animationSet:

public void together(View v) {
AnimationSet animationSet = new AnimationSet(false);
RotateAnimation rotateAnimation = new RotateAnimation(0, 180,
iv.getWidth() / 2, iv.getHeight() / 2);
rotateAnimation.setDuration(2000);
TranslateAnimation translateAnimation = new TranslateAnimation(0, 200,
0, 200);
translateAnimation.setDuration(2000);
ScaleAnimation scaleAnimation = new ScaleAnimation(0.5f, 2, 0.5f, 2,
iv.getWidth() / 2, iv.getHeight() / 2);
scaleAnimation.setDuration(2000);
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(2000);
animationSet.addAnimation(rotateAnimation);
animationSet.addAnimation(translateAnimation);
animationSet.addAnimation(scaleAnimation);
animationSet.addAnimation(alphaAnimation);
iv.startAnimation(animationSet);
}

这样几种补间动画就可以一起执行了

这篇先总结到这里,下篇总结动画监听事件以及页面切换动画.

(原)android中的动画(二)的更多相关文章

  1. (原)android中的动画(三)之动画监听&页面切换动画

    1.动画也可以设置监听事件,例如在动画结束时需要执行某操作 把要执行的代码写在onAnimationEnd()回调方法中即可: anim.setAnimationListener(new Animat ...

  2. Android中的动画具体解释系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...

  3. Android中的动画详解系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...

  4. Android中矢量动画

    Android中矢量动画 Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线. <path> 标签 支持一下属性 M = (Mx, ...

  5. Android中的动画

    Android中的动画分为: 1.逐帧动画(Frame Animation):  把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...

  6. Android中的动画总结

    文章主要内容来源<Android开发艺术探索>,部分内容来源网上的文章,文中会有链接. Android系统提供了两个动画框架:属性动画框架和View动画框架. 两个动画框架都是可行的选项, ...

  7. Android中的动画学习总结

    android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...

  8. Android中的动画,选择器,样式和主题的使用

    一.动画: 1.动画的分类: 1).Tween动画:这种实现方式可以使视图组件移动.放大.缩小以及产生透明度的变化: 2).Frame动画:传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影. ...

  9. Android中的动画使用总结

    android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...

随机推荐

  1. Axure7.0汉化方法

    下载汉化包 AxureRP7CN_汉化包.rar 首先退出正在运行中的 Axure (如果您正在使用). 将 汉化包.rar 文件解压, 得到 lang 文件夹,  然后将其复制到 Axure 安装目 ...

  2. MYSQL数据库的常用数据类型

    列类型 说明 tinyint/smallint/mediumint int(integer)/bigint 1字节.2字节.3字节.4字节.8字节整数,又可分有符号和无符号两种.这些整数类型的区别仅仅 ...

  3. Visual Studio CLR Profiler

    http://blogs.msdn.com/b/dotnet/archive/2013/04/04/net-memory-allocation-profiling-with-visual-studio ...

  4. ecshop Admin后台商品列表处(上架、下架、精品...取消精品)增加操作

    相关文件:goods.php,goods_list.htm 思路: a.增添连接“转移仓库” b.在goods.php,读取仓库列表数据,并且实例化 c. 在goods_list.htm循环数据.点击 ...

  5. iOS-马上着手开发iOS应用应用程序-第二部分构建应用程序

    第二部分构建应用程序 1,应用程序开发过程 2,设计用户界面 3,定义交互 4,教程:串联图 1,应用程序开发过程 定义概念 设计用户界面 定义交互 实现行为整合数据 对象是应用程序的基石 类是对象的 ...

  6. Orchard源码分析(5):Host相关(Orchard.Environment.DefaultOrchardHost类)

    概述 Host 是应用程序域级的单例,代表了Orchard应用程序.其处理应用程序生命周期中的初始化.BeginRequest事件.EndRequest事件等. 可以简单理解为HttpApplicat ...

  7. 几种常用的JS类定义方法(转)

    // 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : funct ...

  8. linux如何隐藏和显示所有窗口?

    centos7 基本上就跟fedora23是一样的了, 也许它们使用的内和是一样的, fedora23使用的是4.2.3, 所以使用fedora对使用centos和redhat是有优势和好处福利的. ...

  9. jQuery回调、递延对象总结(下篇) —— 解密jQuery.when方法

    前言: 前一篇文章中重点总结了一下then方法,它主要用来处理多个异步任务按顺序执行,即前一个任务处理完了,再继续下一个,以此类推: 而这一章节jQuery.when方法也是处理多个异步任务,它把多个 ...

  10. 【转载】Unity 合理安排增量更新(热更新)

    原帖地址:由于我看到的那个网站发的这篇帖子很大可能是盗贴的,我就暂时不贴地址了.避免伤害原作者 原版写的有点乱,我个人修改整理了下. --------------------------------- ...