Android常见动画总结

    xiaoxiao2021-12-14  18

    动画总结:

    一.补间动画:指的是TranslationAnimationAlpahAnimation,ScaleAnimation,RotateAnimation;

    缺点:并没有真正持久改变View的属性,就是说它内部没有一个去记录动画行为的机制;

    帧动画:指的是一帧一帧播放的动画 实现:通过animation-list来实现,写法如下:

    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:duration="200" android:drawable="@drawable/ic_launcher"/> <item android:duration="200" android:drawable="@drawable/ic_launcher"/> <item android:duration="200" android:drawable="@drawable/ic_launcher"/> </animation-list>

    二.属性动画(为了解决补间动画的缺点)

    1.属性动画内部实现:3.0之后view类增加新的用来记录动画行为的属性,如:

    translationX,translationY; scaleX,scaleY; rotationX,rotationY,rotation; alpha;

    具体实现的类:ObjectAnimator; 问题是: ObjectAnimator只能是3.0之后才有,那么我们如果想让属性动画兼容低版本,那么一般

    使用NineOldAnidroid.jar来实现属性动画

    2.NineOldAnidroid.jar:(兼容低版本)主要封装了属性动画和View相关的操作类,该类库是JackWharton来写的;

    用法: ViewPropertyAnimator.animate(text).rotationBy(180)

    .setDuration(500) .start();

    3.直接操作view的属性来更改view的形态:

    view.setTranslationX(); view.setRotationX(); view.setAlpha(); view.setScaleX();

    //如果想在低版本直接操作view的属性,则用如下方法 ViewHelper.setScaleX(text, 0);

    4.改变动画的运动轨迹:

    速度插值器 OvershootInterpolator:超过一点再回来 BounceInterpolator:像球落地一样的感觉 CycleInterpolator:来回晃效果

    5.自定义动画逻辑(值动画):ValueAnimator

    ValueAnimator: 它只是帮我们定义了动画的执行流程,但是没有帮我们实行具体的动画逻辑,

    我们需要监听动画的进度,然后在回调方法中进行自定义的动画逻辑;

    用法:

    ValueAnimator animator = ValueAnimator.ofInt(100,1000); //监听动画执行的进度 animator.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animator) { int animatedValue = (Integer) animator.getAnimatedValue(); // Log.e("tag", "animatorValue:"+animatedValue); //根据动画值的变化进行我们的动画逻辑 // LayoutParams params = text.getLayoutParams(); // params.height = animatedValue; // text.setLayoutParams(params); text.setText(animatedValue+"");   } }); animator.setDuration(1500); animator.setStartDelay(1000); animator.start();
    转载请注明原文地址: https://ju.6miu.com/read-970453.html

    最新回复(0)