Android动画

来源:互联网 发布:电影cms解析收费 编辑:程序博客网 时间:2024/06/06 02:27

补间动画

set标签对应AnimationSet类,它的两个属性:
- android:interpolator:动画集合所采用的插值器,控制动画的播放过程,默认为@android:anim/acceletate_decelerate_interpolator(加速减速插值器);
时间插值器:根据时间流逝的百分比计算出当前属性值改变的百分比,系统预置的有LinearInterpolator(线性插值器),AccelerateDeceleraterInterpolator(加速减速插值器),DeceleraterInterpolator(减速插值器)等,可以自定义插值器,实现Interpolator接口;
类型估值器:根据当前属性改变的百分比来计算改变后的属性值,系统预置的有IntEvaluator(针对整型属性),FloatEvaluator(针对浮点型属性),ArgbEvaluator(针对Color属性),可以通过实现TypeEvaluator接口自定义估值器;
- android:shareInterpolator:集合中的动画是否共享同一个插值器,如果集合不指定插值器,子动画就要单独指定插值器或使用默认值;
- android:duration
- android:fillAfter
translate标签对应TranslateAnimation类,表示平移动画。使一个View在水平或垂直方向完成平移的动画效果
fromXDelta,toXDelta,fromYDelta,toYDelta
scale标签对应ScaleAnimation类,表示缩放动画。
fromXScale,toXScale,fromYScale,toYScale,pivotX,pivotY(缩放轴点的坐标)
rotate标签对应RotateAnimation类
fromDegress,toDegress,pivotX,pivotY
alpha标签对应AlphaAnimation
fromAlpha,toAlpha
加载xml的动画,启动动画跟在代码中创建对象的方式是一样的

Animation animation = AnimationUtils.loadAnimation(context,animId);

帧动画

顺序播放一组预先定义好的图片
1)在res/drawable文件夹下定义animation-list文件,每一个item是一个一个Drawable
2)将上述Drawable作为View背景并通过Drawable来播放动画

view.setBackgroundResource(R.drawable.animation_list);AnimationDrawable drawable = (AnimationDrawable)view.getBackground();drawable.start();

LayoutAnimation
给ViewGroup的子元素添加出场效果
1)在res/anim文件夹下创建xml文件
android:delay:表示子元素开始动画的延迟时间
android:animationOrder:子元素动画的顺序,normal,reverse,random
android:animation:具体的入场动画
2)位ViewGroup指定android:layoutAnimation属性

Activity切换效果
在onStart()方法或者finish()方法执行完毕后,调用overridePendingTransition(enterAnim,exitAnim)方法

属性动画

属性动画可以对任意对象的属性进行动画,而不仅仅是View,默认时间间隔300ms,默认帧率10ms/帧,在一个时间间隔内完成对象从一个属性值到另一个属性值的改变。
ObjectAnimator–objectAnimator
ValueAnimator–animagtor
AnimatorSet–set
加载布局文件中的属性动画

AnimatorSet set = AnimatorInflater.loadAnimator(context,anim);set.setTarget(view);set.start();

属性动画的监听器:

  • AnimationListener:监听动画的开始,结束,取消以及重复播放
  • AnimationUpdateListener:动画是由许多帧构成的,每播放一帧,调用一次

对任意属性做动画
1.如果有权限,给你对象的属性加上get和set方法
2.用一个类来包装原始类,间接为其提供get和set方法
3.采用valueAnimator,监听动画过程,自己实现属性改变

0 0
原创粉丝点击