Android四种动画

来源:互联网 发布:什么是c语言 编辑:程序博客网 时间:2024/05/23 11:01

Android基础动画

  • Tween Animation 变换动画
  • Frame Animation 帧动画
  • Layout Animation 布局动画
  • Property Animation 属性动画

Tween Animation 变换动画

  • Alpha:渐变透明度动画
  • Scale:渐变尺寸缩放动画
  • Translate:位置移动动画
  • Rotate :旋转动画

共同属性

  • Duration:动画持续时间
  • fillAfter:设置为true,动画转化在动画结束后被应用
    fillBefore:设置为true,动画转化在动画开始前被应用
  • interPolator:动画插入器(加速、减速插入器)
  • repeatMode:动画重复次数
  • repateMode:顺序重复/倒序重复
  • startOffset:动画之间的时间间隔

Animation实现方式

  • 配置文件(/res/anim)–alpha、scale、translate、rotate
  • Java代码实现—–AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

Example(Java代码创建)

AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);//设置动画时间为5秒alpha.setDuration(5000);//开始播放img.startAnimation(alpha);

Example(加载布局文件)

Animation scale=AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_anim);//开始动画img.startAnimation(scale);

AlphaAnimation (透明度动画)

  • fromAlpha:动画起始时透明度
  • toAlpha:动画终止时的透明度

0.0 表示完全透明
1.0 表示完全不透明

ScaleAnimation(缩放动画)

  • fromX,toY分别是起始和结束时X坐标上的伸缩尺寸
  • fromY,toY分别是起始和结束时Y坐标上的伸缩尺寸
  • pivotX,pivotY分别为伸缩动画相对于x,y坐标开始的位置

TranslateAnimation(位移动画)

  • fromXDelta,fromYDelta分别是起始时X,Y的坐标
  • toXDelta,toYDelta分别是X,Y的坐标

RotateAnimation(旋转动画)

  • fromDegress 起始的角度
  • toDegress 终止的角度
  • pivotX,pivotY分别为旋转动画相对于x,y的坐标开始位置

组合动画

  • 续播一 第一个动画A结束时监听AnimationListener ,在onAnimationEnd触发时开始动画B
  • 续播二 写一个动画集AnimationSet,在其中定义动画A和B,为动画B设置startOffset,其值就是前一个动画播放的时间

循环闪烁

  • 利用Animation的setRepeatCount、setRepeatMode来实现动画循环。
AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);alpha.setDuration(100);alpha.setRepeatCount(10);//倒序重复:REVERSE  正序重复RESTARTalpha.setRepeatMode(Animation.REVERSE);img.startAnimation(alpha);

Activity切换动画:

  • 使用overridePendingTransition方法
  • 参数:第二个activity进入动画 、第一个activity退出时的动画

布局动画

  • LayoutAnimation
    为ViewGroup添加动画、使用LayoutAnimationController

LayoutAnimationController lay=new LayoutAnimationController();
lay.setOrder(LayoutAnimationController.ORDER_RANDOM);;
listview.setLayoutAnimation(lay);
listview.startLayoutAnimation();

FrameAnimation(逐帧动画)

使用animation_list标签来分组一个item的标签集合,定义要显示的图片。指定显示他的时间

0 0