补间动画

原创 2015年11月21日 16:30:05

补间动画:(View Animation)通过对场景的对象不断进行图像变化来产生动画效果,在实现补间动画时,只要定义动画开始和结束的”关键帧”其它过度帧由系统自动计算并补齐。

位置:在res文件夹下新建一个anim文件夹,然后建立对应的文件

通用属性

属性 描述
android:repeatMode 设置动画的重复方式,reverse(反向),restart重新开始
android:repeatCount 用于设置动画的重复次数 可以是数值或infinite
android:duration 用于指定动画的持续时间,单位为ms
android:interpolotor 用于控制动画的变化速度
android:fillAfter 动画完成后是否保留在动画结束的位置
android:startOffset="500" 动画在多少秒之后启动

Android:interpolotor常用属性

属性 描述
@android:anim/linear_interpolator 动画一直在做匀速改变 默认
@android:anim/accelerate_interpolator 动画一在开始的地方开始较慢,然后开始加速
@android:anim/decelerate_interpolator 在动画开始的地方改变速度较快,然后开始减速
@android:anim/accelerate_decelerate_interpolato 动画在开始和结束的地方改变速度较慢,在中间的时候加速
@android:anim/cycle_interpolator 动画循环播放特定的次数,变化速度按正弦曲线改变
@android:anim/bounce_interpolator 动画结束的地方采用弹球效果
@android:anim/anticipate_overshoot_interpolator 在动画开始的地方先向后退一小步,再开始动画,到结束的地方再超出一小步,最后回到动画结束的地方
@android:anim/overshoot_interpolator 动画快速到达终点,并超出一小步最后回到动画结束的地方
@android:anim/anticipate_interpolator 在动画开始的地方先向后退一小步,再快速到达动画结束的地方

透明度渐变动画(AlphaAnimation)

  • xml配置使用
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromAlpha="1.0"
    android:repeatCount="2"
    android:repeatMode="restart"
    android:toAlpha="0" >

</alpha>
  • 特有属性
属性 描述
android:fromAlpha 用于指定动画开始时的透明度,0-1之间,1表示完全不透明
android:toAlpha 用于指定动画结束时的透明度,同上
  • java代码使用

    • 加载定义好了的xml文件
    animation = (AlphaAnimation) AnimationUtils.loadAnimation(this, R.anim.anim_alpha);
    
    iv_1.startAnimation(animation);
    • java代码完全定义
    animation = new AlphaAnimation(1, 0);
    animation.setDuration(2000);
    animation.setRepeatCount(3);
    animation.setFillBefore(true);
    iv_1.startAnimation(animation);

缩放动画(scaleAnimation)

  • xml配置使用
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="0 "
    android:pivotY="0 "
    android:repeatCount="1"
    android:repeatMode="reverse"
    android:duration="2000"
    android:toXScale="5"
    android:toYScale="5" >

</scale>
  • 特有属性
属性 描述
Android:fromXScale 用于指定动画开始时水平方向上的缩放系数,值为 1.0 表示不变化
Android:toXScale 用于指定动画结束时水平方向上的缩放系数,值为 1.0 表示不变化
Android:fromYScale 用于指定动画开始时垂直方向上的缩放系数,值为 1.0 表示不变化
Android:toYScale 用于指定动画结束时垂直方向上的缩放系数,值为 1.0 表示不变化
Android:pivotX 用于指定轴心点 X 轴坐标 起点是布局的左上角
Android:pivotY 用于指定轴心点 Y 轴坐标 50%表示y轴中心点
  • java代码使用

    • 加载定义好了的xml文件
    animation = AnimationUtils.loadAnimation(this, R.anim.anim_scale);
    
    iv_1.startAnimation(animation);
    • java代码完全定义
    animation = new ScaleAnimation(1, 5, 1, 5, 0, 0);
    animation.setDuration(2000);
    animation.setRepeatCount(1);
    animation.setRepeatMode(Animation.REVERSE);
    iv_1.startAnimation(animation);

平移动画(TranslateAnimation)

  • xml配置使用
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2500"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:repeatCount="1"
    android:repeatMode="reverse"
    android:toXDelta="300"
    android:toYDelta="300" >

</translate>
  • 特有属性
属性 描述
Android:fromXDelta 用于指定动画开始时水平方向上的起始位置
Android:toXDelta 用于指定动画结束时水平方向上的起始位置
Android:fromYDelta 用于指定动画开始时垂直方向上的起始位置
Android:toYDelta 用于指定动画结束时垂直方向上的起始位置
  • java代码使用

    • 加载定义好了的xml文件
    animation = AnimationUtils.loadAnimation(this, R.anim.anim_translate);
    iv_1.startAnimation(animation);
    • java代码完全定义
    animation = new TranslateAnimation(0,300, 0, 300);//相对于view的位置
    animation.setDuration(2000);
    animation.setRepeatCount(1);
    animation.setRepeatMode(Animation.REVERSE);
    
    iv_1.startAnimation(animation);

旋转动画(RotateAnimation)

  • xml配置使用
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="2"
    android:repeatMode="reverse"
    android:interpolator="@android:anim/anticipate_overshoot_interpolator"
    android:toDegrees="360" >

</rotate>

</translate>
  • 特有属性
属性 描述
Android:fromDegrees 用于指定动画开始时旋转的角度
Android:toDeggrees 用于指定动画结束时旋转的角度
Android:pivotX 用于指定轴心点 X 轴坐标
Android:pivotY 用于指定轴心点 Y 轴坐标
  • java代码使用

    • 加载定义好了的xml文件
    animation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate);
    iv_1.startAnimation(animation);
    • java代码完全定义
    animation = new RotateAnimation(0, 360, 0, 0);
    animation.setDuration(2000);
    animation.setRepeatCount(2);
    animation.setRepeatMode(Animation.REVERSE);
    
    iv_1.startAnimation(animation);
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 动画系列之补间(Tween)动画详解

上一篇博客中写了逐帧动画(Frame)的使用,Android中除了支持逐帧动画(Frame)之外,也提供了对补间(Tween)动画的支持。补间动画就是指开发者只需要指定动画的开始、结束等“关键帧”,而...
  • Airsaid
  • Airsaid
  • 2016年06月05日 20:34
  • 9252

Android中属性动画和补间动画的区别

目录目录 前言 为什么引入属性动画 属性动画 ObjectAnimator ValueAnimator AnimatorSet Animator监听器前言Android属性动画和补间动画,既是日常工作...
  • zinss26914
  • zinss26914
  • 2016年01月26日 17:52
  • 9265

Android四种补间动画介绍及实现

一.Android的animation由四种类型组成:alpha、scale、translate、rotate alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动...
  • romanstatic
  • romanstatic
  • 2016年09月10日 09:35
  • 1474

轻量级JavaScript补间动画类

  • 2010年04月02日 17:38
  • 59KB
  • 下载

苏教版形状补间动画课件和学案

  • 2015年06月21日 15:23
  • 620KB
  • 下载

补间动画demo

  • 2016年05月01日 11:54
  • 1001KB
  • 下载

XML创建补间动画

  • 2016年05月01日 13:54
  • 1007KB
  • 下载

自定义补间动画演示Demo

  • 2015年12月26日 14:33
  • 2.14MB
  • 下载

安卓补间动画

  • 2016年03月11日 18:14
  • 1.87MB
  • 下载

Android 百战经典-Android补间动画(Tween)大观园

  • 2016年03月20日 18:43
  • 7.96MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:补间动画
举报原因:
原因补充:

(最多只允许输入30个字)