参考:

一.Android中有哪几种类型的动画?

  • View动画(View Animation)/补间动画(Tween animation)
    • 对View进行平移、缩放、旋转和透明度变化的动画,不能真正的改变view的位置。应用如布局动画、Activity切换动画;
  • 逐帧动画(Drawable Animation)
    • 是View动画的一种,它会按照顺序播放一组预先定义好的图片;
  • 属性动画(Property Animation)

    • 对该类对象进行动画操作,真正改变了对象的属性。

      二.帧动画在使用时需要注意什么?

  • 使用祯动画要注意不能使用尺寸过大的图片,否则容易造成OOM;

    三.View动画和属性动画的区别?

    1.webp

    四.View动画为何不能真正改变View的位置?而属性动画为何可以?

  • View动画改变的只是View的显示,而没有改变View的响应区域;而属性动画会通过反射技术来获取和执行属性的get、set方法,从而改变了对象位置的属性值。

    五.属性动画插值器和估值器的作用?

  • 插值器(Interpolator):根据时间流逝的百分比计算出当前属性值改变的百分比。确定了动画效果变化的模式,如匀速变化、加速变化等等。View动画和属性动画均可使用。常用的系统内置插值器:

    • 线性插值器(LinearInterpolator):匀速动画
    • 加速减速插值器(AccelerateDecelerateInterpolator):动画两头慢中间快
    • 减速插值器(DecelerateInterpolator):动画越来越慢
  • 类型估值器(TypeEvaluator):根据当前属性改变的百分比计算出改变后的属性值。针对于属性动画,View动画不需要类型估值器。常用的系统内置的估值器:
    • 整形估值器(IntEvaluator)
    • 浮点型估值器(FloatEvaluator)
    • Color属性估值器(ArgbEvaluator)