本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!

Android中动画的应用,在应用管理软件、购物软件、追星软件等比较广泛;比如常见的进度条设计,此处尤其指圆形的那种。比如清理小火箭,从下向上飞出;比如清理软件提示,由深色渐变成浅色。这些都是动画的应用场景。

Android动画分为两种,一种叫帧动画,就像flash一样,学名Frame,进度条一般使用这种;另一种叫补间动画,学名Tween,可以移动位置、变化颜色、变换大小、翻转变化。

先说帧动画

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><itemandroid:drawable="@mipmap/icon_s01"android:duration="30" /><itemandroid:drawable="@mipmap/icon_s02"android:duration="30" /><itemandroid:drawable="@mipmap/icon_s03"android:duration="30" /></animation-list>

onshot的意思是,true只播放一遍,false循环播放;item项指每隔duration展示的图片

应用:

先写布局

    <ImageViewandroid:id="@+id/loading_iv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:background="@drawable/anim_progress_round"/>

再执行代码

     ImageView loadingImage = child.findViewById(R.id.loading_iv);AnimationDrawable animation = (AnimationDrawable) loadingImage.getBackground();if (animation.isRunning()) {animation.stop();}animation.start();

获得背景的AnimationDrawable对象,执行start方法即可。

补间动画:

基类Animation,子类ScaleAnimation、AlphaAnimation、RotateAnimation、TranlateAnimation,分别用于大小变换、色彩变换、翻转变换和位移变换。

常用方法有setDutation-设置运行时间,setFillAfter-设置运行结束是否保持最后状态,setFillBefore-设置运行结束是否保质最初状态,setRepeatCount-设置重复执行次数;setRepeatMode-设置重复类型,如REVERSE会倒着再执行repeatCount遍;setInterpolater-设置插补器,可以让控件回弹,控制速度。

 //accelerate_decelerate_interpolator先慢后快再慢linear_interpolator匀速decelerate_interpolator先快后慢mAnimationTranslate.setInterpolator(mContext, android.R.anim.decelerate_interpolator);

例:

        mAnimationTranslate = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0f,Animation.RELATIVE_TO_PARENT, 1, Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0);mAnimationTranslate.setDuration(3000);mAnimationTranslate.setRepeatMode(Animation.ABSOLUTE);mAnimationTranslate.setRepeatCount(0);
    mRocketIv.startAnimation(mAnimationTranslate);

设置相关参数,执行startAnimation即可。

ScaleAnimation:fromXScale-X轴方向缩放比例,toXScale、fromYScale和toYScale同理;pivoteX起点X坐标,pivoteY同理。

AlphaAnimation:fromAlpha-起始透明度,toAlpha-最终透明度。

RotateAnimation:fromDegress-起始角度,toDegress-最终角度,正数为顺时针,负数为逆时针。

TranslateAnimation:fromXType-起始位移类型,fromYType同理;fromXValue-起始X坐标,fromYValue同理;

从左边折出来

        ScaleAnimation animation = new ScaleAnimation(0f, 1f, 1f, 1f);animation.setDuration(1000);//设置动画持续时间mChannelLayout.setAnimation(animation);

从左上角弹出来

        ScaleAnimation animation = new ScaleAnimation(0f, 1f, 0f, 1f);animation.setDuration(1000);//设置动画持续时间mChannelLayout.setAnimation(animation);

从左向右的动画:

AnimationUtils.makeInAnimation(this, true);

从右回到左的动画:

AnimationUtils.makeOutAnimation(this, false);

最后AnimationSet可以对以上四种补间动画类型进行组合,制造出更加炫酷的效果。

话外:通过AnimationSet可以将上述4种动画,使用AnimatorInflater和ObjectAnimator,联合起来一起(togethor)或者顺序(sequentially)执行,做更复杂的效果。

动画修饰:

AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速

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

AnticipateInterpolator 开始的时候向后然后向前甩

AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值

BounceInterpolator   动画结束的时候弹起

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

DecelerateInterpolator 在动画开始的地方快然后慢

LinearInterpolator   以常量速率改变

OvershootInterpolator    向前甩一定值后再回到原来位置

Android初级开发第九讲--动画相关推荐

  1. Android初级开发笔记-- activity启动模式的学习(1)

    第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...

  2. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第九讲:块元素、行内元素、标准流、盒子模型

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第九讲:块元素.行内元素.标准流.盒子模型 DIV+CSS将显示和数据分离,极大的方便了贵阳网站建设时布局的灵活性.将节对DIV+CSS中类选择器.id选择器 ...

  3. 【安卓开发 】Android初级开发(三)动画

    逐帧动画 方法一,在xml中设置 1.先将图片加入drawable 2.在drawable中新建xml,设置每一帧的图片和时间 <?xml version="1.0" enc ...

  4. Android应用开发之所有动画使用详解

    | LinearInterpolator | @android:anim/linear_interpolator | 动画匀速改变 | | OvershootInterpolator | @andro ...

  5. 【android编程】第九讲-用户资源

    第九讲 用户资源 文章目录 第九讲 用户资源 0.学习指导 1.字符串(string)资源 2.颜色(color)资源 颜色值定义 定义颜色资源文件 使用颜色资源 3.尺寸(dimen)资源 Andr ...

  6. Android游戏开发–雪碧动画

    如果到目前为止您仍然关注该系列,我们将在处理触摸,显示图像和移动它们方面广为人知. 但是,动态图像看起来很呆板,因为它看起来确实是假的和业余的. 为了给角色一些生活,我们将需要做更多的事情. 这就是动 ...

  7. Android初级开发第七讲--特效和数据传递处理

    博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 大家好,相信大家对iphone上的特效早有耳闻,特效不仅给人以 ...

  8. Android高级开发第二讲--Android中API翻译之Activity

    博客出自:刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主,转载注明出处! All Rights Reserved ! Activity主要用来展示给用户,让用 ...

  9. 【安卓开发 】Android初级开发(十二)Android向系统日历中添加事件

    1.首先需要获取权限 <uses-permission android:name="android.permission.READ_CALENDAR" /><us ...

最新文章

  1. 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
  2. mysql数据库优化(二)
  3. left join 一对多_MYSQL 连接查询算法:JOIN语句在 MYSQL 内部到底是怎么执行的
  4. 住手!!你不需要微服务!
  5. 虎年云原生落地技术趋势
  6. 梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...
  7. python项目计划_2017年vn.py项目计划
  8. django下的考勤机管理系统定制实例
  9. master matlab,MOEA-master
  10. 【圣诞快乐】闻到圣诞的气息了,喜欢的节日在慢慢来临~祝大家Merry Christmas。
  11. Matlab之双坐标轴绘制plotyy
  12. 1211: 【入门】数字走向IV
  13. getPrepayId php,php微信支付接口开发程序
  14. 微服务架构系列一:关键技术与原理研究
  15. 想知道手机配音软件哪个好用吗?一起来看看吧
  16. iOS图像渲染 + 动画探索
  17. 求真值表,主析取范式,主合取范式
  18. 【不忘初心】Windows10 21H2 (19044.1566) X64 无更新[深度精简版][1.28G](2022.2.25)
  19. 口琴膜片什么作用_有多少人用无膜半音阶口琴,对于初学者来说?
  20. 思维导图怎么画?思维导图快速绘制教程

热门文章

  1. [设计模式]工厂模式与抽象工厂模式
  2. 如何将应用程序的打开方式还原或者设置成另外的打开方式
  3. java SQL查询语句
  4. 速刷html一周目(下)
  5. 如何正确理解需求,做出符合产品特性的设计呢?
  6. fluent遇到的问题总结
  7. jieba分词和文件读写
  8. Swoole加速结巴分词
  9. pc端vue登录如何调用软键盘_vue-自定义pc端软键盘
  10. 字符集与编码五之代码单元及length方法