Android——Animation

简介:

Android中的动画:

一、分类:TweenAnimation(补间动画)和FrameAnimation(帧动画)。

  1. TweenAnimation,通过对图像不断做变换产生动画效果,是一种渐变效果;

    AlphaAnimation:透明度渐变;

    ScaleAnimation:尺寸缩放;

    TranslateAnimation:移动

    RotateAnimation:旋转

  2. FrameAnimation:顺序播放事先做好的图像是一种转换动画;

二、属性简介:

  1. TweenAnimation共同属性:

android:duration [long] :动画持续的时间;

android:fillAfter [boolean]:视图停在动画结束的位置,但是真正的位置仍然是布局中给定位置;

android:fillBefore[boolean]:视图停在动画开始的位置;

android:interpolator :指定一个动画的插入器,常用的插入器有:

    accelerater_decelerate_interpolator:加速-减速 动画插入器

    accelerater_interpolator:加速动画插入器;

    deceleratr_interpolator:减速动画插入器;

android:repeatCount[int]:动画重复次数,-1表示无限循环;

android:repeatMode[int]:定义动画重复的行为,1,从起点重新开始;2,从结束位置开始相反执行;

android:startOffset[long]:动画之间的时间间隔,从上次动画停多少时间开始执行下个动画;

android:zAdjustment[int]:定义动画的Z order的改变,0:保持Z Order不变;1:保持在最上层;-1保持在最下层;(????待验证)

1.1 AlphaAnimation

xml中定义

1
2
3
<!--    <alpha android:fromAlpha="" 开始时的透明度,0.0-1.0 -->
<!--        android:toAlpha="" 结束时的透明度 0.0-1.0 -->
<!--        android:duration="" 动画持续的时间 /> -->

代码中定义:

1
2
3
4
//fromAlpha:开始时的透明度,toAlpha:结束时的透明度
         AlphaAnimation alpha =  new  AlphaAnimation(fromAlpha, toAlpha);
         //设置动画持续的时间
         alpha.setDuration(durationMillis);

1.2 ScaleAnimation

xml

1
2
3
4
5
6
7
8
<!-- <scale  -->
<!--     android:fromXScale= ""  动画起始时X坐标上的伸缩尺寸-->
<!--     android:toXScale= ""  动画结束时X坐标上的伸缩尺寸-->
<!--     android:fromYScale= ""  动画起始时Y轴上的伸缩尺寸-->
<!--     android:toYScale= ""  动画结束时Y轴上的伸缩尺寸-->
<!--     android:pivotX= ""  动画相对于物件的X坐标的开始位置-->
<!--     android:pivotY= ""  动画相对与物件Y坐标的开始位置-->
<!--     /> -->

代码中

1
ScaleAnimation scale =  new  ScaleAnimation(fromX, toX, fromY, toY);

1.3 TranslateAnimation

xml

1
2
3
4
5
6
7
8
     < translate
         android:fromXDelta = "0%"  //x轴起始位置
         android:pivotX = "0%"  //动画相对于物件X坐标的开始位置
         android:pivotY = "0%" //动画相对于物件Y坐标的开始位置
         android:toXDelta = "30%"  //x轴的结束位置
         android:fromYDelta = "0%"  //y轴起始位置
         android:toYDelta = "0%"  //y轴结束位置
         android:duration = "10000" />

代码中:

1
TranslateAnimation anim =  new  TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)

1.4 RotateAnimation

xml

1
2
3
4
5
6
7
     <!-- <rotate -->
     <!-- android:fromDegrees= ""  动画起始时物件的角度 -->
     <!-- android:toDegrees= ""  动画结束时物件旋转的角度 -->
     <!-- 角度为负表示逆时针旋转,角度为正表示顺时针旋转 -->
     <!-- android:pivotX= ""  动画相对于物件X坐标的开始位置 -->
     <!-- android:pivotY= ""  动画相对与物件Y坐标的开始位置 -->
     <!-- android:duration= ""  动画运行时间/> -->

代码:

1
ScaleAnimation anim =  new  ScaleAnimation(fromX, toX, fromY, toY)

2.xml定义动画在activity中的使用:

1
Animation animation = (Animation) AnimationUtils.loadAnimation(MainActivity. this , R.anim.animation);

3.插值器的使用

Interpolator对象 资源ID 功能作用
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator 先加速再减速
AccelerateInterpolator @android:anim/accelerate_interpolator 加速
AnticipateInterpolator @android:anim/anticipate_interpolator 先回退一小步然后加速前进
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator 在上一个基础上超出终点一小步再回到终点
BounceInterpolator @android:anim/bounce_interpolator 最后阶段弹球效果
CycleInterpolator @android:anim/cycle_interpolator 周期运动
DecelerateInterpolator @android:anim/decelerate_interpolator 减速
LinearInterpolator @android:anim/linear_interpolator 匀速
OvershootInterpolator @android:anim/overshoot_interpolator 快速到达终点并超出一小步最后回到终点

4.FrameAnimation:帧动画

添加图片,按照添加图片的顺序播放;

1
2
3
4
5
6
AnimationDrawable anima =  new  AnimationDrawable();
anima.addFrame(drawable1, duration1);
anima.addFrame(drawable2, duration2);
anima.addFrame(drawable3, duration3);
anima.addFrame(drawable4, duration4);
view.setBackgroudDrawable(anima);














本文转自wauoen51CTO博客,原文链接:http://blog.51cto.com/7183397/1607198  ,如需转载请自行联系原作者




相关文章
|
9月前
|
XML Java Android开发
|
9月前
|
XML Android开发 数据格式
|
XML API Android开发
Android 属性动画Property Animation(中)
ValueAnimator指定整形、浮点型或者颜色值作为动画值,在一定时间内平滑过渡。可以通过ofInt(),ofFloat(),或ofObject()来或得一个ValueAnimator
|
Android开发
Android Animation动画
Android Animation动画
116 0
Android Animation动画
|
Android开发
Animation插值器:解决Android Animation 循环执行的停顿问题
在Android开发中,有时候我们需要一个动画一直循环执行下去,常见的如laoding菊花一直旋转,这时候就需要使用Animation的repeat功能
678 0
|
API Android开发
【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别
【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别
108 0
|
XML Java API
Android 属性动画(Property Animation) 完全解析
Android 属性动画(Property Animation) 完全解析
Android 属性动画(Property Animation) 完全解析
|
XML Android开发 数据格式
Android Animation(动画)---基础二(LayoutAnimationController)
LayoutAnimationController动画效果,一次出现 一、布局文件使用 动画list_item_layout.xml 每个列表项动画list_item_alpha.
801 0
|
XML Android开发 数据格式
Android Animation(动画)---基础一
动画分类: 传统动画(帧动画(Frame Animation)/ 补间动画(Tweened Animation))。 属性动画(Attribute Animation) 帧动画 帧动画是将图片一张一张的连续播放,适当的速度,让人感觉是连续的动画。
881 0