美文网首页
Android属性动画的三种使用方式

Android属性动画的三种使用方式

作者: 我吃大西瓜QAQ | 来源:发表于2019-03-27 17:50 被阅读0次

第一种:ViewPropertyAnimator

专门针对view设计的,使用简单操作方便,但是不易于扩展

使用方式:
view
.animate()
.scale(1)
.translationX(300)
.setDuration(2000)
.start();

第二种:ObjectAnimator

继承自ValueAnimator
实际上是通过调用view里面的setter()方法来更新参数值,例如下面的alpha实际上是调用的view里面的setAlpha()方法来更新值

使用方式
旋转 rotationrotationXrotationY
  • rotationX:表示围绕 X 轴旋转,rotationX 表示旋转度数
  • rotationY:表示围绕 Y 轴旋转,rotationY 表示旋转度数
  • rotation:表示围绕 Z 旋转,rotation 表示旋转度数
移动 translationXtranslationY
  • translationX :表示在 X 轴上的平移距离,以当前控件为原点,向右为正方向,参数 translationX 表示移动的距离。
  • translationY :表示在 Y 轴上的平移距离,以当前控件为原点,向下为正方向,参数 translationY 表示移动的距离。
缩放 scaleXscaleY
  • scaleX:在 X 轴上缩放,scaleX 表示缩放倍数
  • scaleY:在 Y 轴上缩放,scaleY 表示缩放倍数
透明度 alpha
  • alpha:改变透明度 范围:0-1
  • 1:不透明 0:完全透明
ObjectAnimator animator = ObjectAnimator.ofFloat(view,"alpha",1,0,1);
animator.setDuration(2000);  
animator.start(); 

第三种方式: ValueAnimator

  • ValueAnimator 是 ObjectAnimator 的父类,实际上,ValueAnimator 就是一个不能指定目标对象版本的 ObjectAnimator。
  • 无法指定view对象,而是通过自身不断变化的值,自己手动去调用某个view的setter()方法来变化参数值
  • 适用于第三方库控件里面属性没有对应的setter / getter 方法的时候,会需要用到它
使用方式:
ValueAnimator animator = ValueAnimator.ofInt(0,400);//创建一个值从0到400的动画
animator.setDuration(1000);//动画时长为1s

animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        int curValue = (int)animation.getAnimatedValue();
        tv.layout(curValue,curValue,curValue+tv.getWidth(),curValue+tv.getHeight());  
    }
});

三种方式的区别:

  • ViewPropertyAnimator、ObjectAnimator、ValueAnimator 这三种 Animator,它们其实是一种递进的关系:从左到右依次变得更加难用,也更加灵活。
  • 它们的性能是一样的,因为 ViewPropertyAnimator 和 ObjectAnimator 的内部实现其实都是 ValueAnimator,ObjectAnimator 更是本来就是 ValueAnimator 的子类,它们三个的性能并没有差别。它们的差别只是使用的便捷性以及功能的灵活性。所以在实际使用时候的选择,只要遵循一个原则就行:尽量用简单的。能用 View.animate() 实现就不用 ObjectAnimator,能用 ObjectAnimator 就不用 ValueAnimator。

相关文章

  • android动画使用大全

    android中主要有三种方式来实现动画,补间动画、帧动画、属性动画。 1.补间动画(tween Animatio...

  • Android 你应该知道的动画

    Android中,动画可以分为三种,分别是补间动画、帧动画以及属性动画,接下来将对这三种动画的使用做一个详细的介绍...

  • 笔记:Android 动画

    Android 动画 Android动画分为三种: 属性动画 帧动画 View动画 View动画支持4种效果 平移...

  • Android属性动画的三种使用方式

    第一种:ViewPropertyAnimator 专门针对view设计的,使用简单操作方便,但是不易于扩展 使用方...

  • Android源码相关分析(a)

    1、Android动画框架实现原理 android 动画框架分为三种类别:渐变动画、帧动画、属性动画Android...

  • Android 动画

    android动画分为三种 帧动画,视图动画(补间动画),属性动画逐帧动画 视图动画 属性动画 Window和A...

  • 属性动画学习使用总结

    Android 属性动画总结 属性动画的优点 属性动画的使用步骤 实例化属性动画对象 设置属性动画的时长 启动属性...

  • Android动画深入分析

    参考资料《Android开发艺术探索》 Android的动画可以分为三种,View动画,帧动画和属性动画。 Vie...

  • 基于XML的android property animation

    属性动画是android最强的生成动画的方式,理论上可以做各种效果。这篇文章主要介绍如何使用XML来配置属性动画。...

  • Android属性动画ViewPropertyAnimator、

    属性动画的三种方式 1.ViewPropertyAnimator 直接使用View.animate() 获取 Vi...

网友评论

      本文标题:Android属性动画的三种使用方式

      本文链接:https://www.haomeiwen.com/subject/portbqtx.html