官网地址: https://developer.android.com/reference/android/view/ViewPropertyAnimator.html

###ViewPropertyAnimator的优势: 当一个View的几个属性并行执行动画时,ViewPropertyAnimator提供了一种更简单的实现方式。ViewPropertyAnimator是在3.1系统中加入的,ViewPropertyAnimator跟ObjectAnimator很像,也能改变View的实际值,但是ViewPropertyAnimator只能作用于View而不能作用于其他object 。假如需要同时对多个属性执行动画时,ViewPropertyAnimator效率更高,代码更简洁、更易读。

常用方法 备注
translationX(float value)、translationY(float value) translationX、translationY分别为向X、Y轴的移动value的距离
x(float value)、y(float value) 如x(valueX)、y(valueY):将目标View移动到(valueX,valueY)的坐标点上
alpha() 设置View的透明度
rotation() 旋转View
scaleX(float value)、scaleY(float value) 设置View的放缩,value是倍数,如设置scaleX(2f)是View在X轴方向放大2倍,scaleY同理
setDuration(long duration) 设置动画持续时间
setStartDelay(long startDelay) 动画开始之前的延迟时间
setListener(Animator.AnimatorListener listener) 动画监听
setInterpolator(TimeInterpolator interpolator) 时间插值器,用来修饰动画效果
setUpdateListener(ValueAnimator.AnimatorUpdateListener listener) API 19或以上使用 动画更新回调
withStartAction(Runnable runnable) 动画开始时设置的行为
withEndAction(Runnable runnable) 动画结束时设置的行为

###ViewPropertyAnimator和ObjectAnimator使用对比

先看效果图:

如上图中的效果,将View移动到(500f,500f)坐标,分别使用ViewPropertyAnimator和ObjectAnimator来实现:

1、多个ObjectAnimator 组合:

ObjectAnimator animX = ObjectAnimator.ofFloat(myView, "x", 500f);
ObjectAnimator animY = ObjectAnimator.ofFloat(myView, "y", 500f);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(animX, animY);
animSetXY.start();
复制代码

2、或者使用一个ObjectAnimator+PropertyValuesHolder :

PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("x", 500f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("y", 500f);
ObjectAnimator.ofPropertyValuesHolder(myView, pvhX, pvyY).start();
复制代码

3、使用ViewPropertyAnimator:

myView.animate().x(500f).y(500f).start();
复制代码

可见在特定情况下使用ViewPropertyAnimator可以大大简化了代码量和可阅读性。

转载于:https://juejin.im/post/5a33e7ab51882549a746463e

Android ViewPropertyAnimator:让动画变得简单起来!相关推荐

  1. Android ViewPropertyAnimator 属性动画概述

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  2. Android App开发动画特效中帧动画和电影淡入淡出动画的讲解及实战(附源码和演示视频 简单易懂)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.帧动画 Android的动画分为三类,帧动画,补间动画和属性动画.其中帧动画是实现原理最简单的一种,跟现实生活中的电影胶卷类似,都是在短时间内连续 ...

  3. android.复杂动画实现,Android开发 - 掌握ConstraintLayout(十一)复杂动画!如此简单!...

    介绍 本系列我们已经介绍了ConstraintLayout的基本用法.学习到这里,相信你已经熟悉ConstraintLayout的基本使用了,如果你对它的用法还不了解,建议您先阅读我之前的文章. 使用 ...

  4. android动画变黑,Activity添加进入和退出动画的两种方式,解决黑色区域问题

    Activity添加进入和退出动画的两种方式,解决黑色区域问题 给Activity添加进入和退出动画的操作,大家一定不会陌生.常见的有两种方式,一种是通过style文件给Activity设置Theme ...

  5. android 巧用动画使您app风骚起来

    巧用Android的自定义动画,使你更加的有动感,是大多数Android开发人员的目标,那怎么做到这点.请听下文分解: 3.0以前,android支持两种动画模式,tween animation(幅间 ...

  6. Android中的动画总结

    Android 动画 三种总结: 属性动画:动态的改变属性产生动画效果:改变动画的属性,两个重要的类: 1.ValueAnimator 类是先改变值,然后 手动赋值 给对象的属性从而实现动画:是 间接 ...

  7. Android中的动画

    视频课:https://edu.csdn.net/course/play/7621 学习内容 Ø 帧动画 Ø 补间动画 Ø 动画方式切换组件 能力目标 Ø 掌握Android中动画的基本概念及分类 Ø ...

  8. android 同根动画_[转载]Android anim动画切换效果

    关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放. ...

  9. 从零开始开发Android相机app(三)简单介绍图像滤镜功能

    目前章节 1.从零开始安卓端相机功能开发(一)了解用什么去开发以及流程 2.从零开始安卓端相机功能开发(二)让我们来开发一个相机 3.从零开始开发Android相机app(三)简单介绍图像滤镜功能 文 ...

  10. MotionLayout MotionScene 动画从未如此简单!

    话不多说先上图. 这是要做的最终效果.通过这些动画我们将了解MotionLayout的使用方法和常用的一些属性. 第一步:添加依赖 如果要使用MotionLayout请将ConstraintLayou ...

最新文章

  1. 公开课 | 腾讯云高级研发工程师:朋友圈爆款背后的计算机视觉技术与应用
  2. 5月30日,社区活动:SharePoint技术峰会
  3. 计算机的诊断策略服务怎么打开,win7系统使用诊断策略服务提示“未运行”怎么解决...
  4. 完成U-net细胞分割的一些准备
  5. 【干货】引爆公式,让你的APP成为下一个“爆款”!
  6. vim 的配置文件 #vim ~/.vimrc
  7. nyoj116士兵杀死(两)段树单点更新
  8. 14日晚8点直播丨 经典知识库:性能优化那些事
  9. 速度挑战 - 2小时完成HTML5拼图小游戏
  10. ubuntu开发c/c++帮助文档
  11. uniapp开发原生android插件,获取浏览器cookie
  12. 类对象模型实验:类数据成员大小
  13. 简单提取iOS13的ipsw固件的内置壁纸(或文件)
  14. 请每一个孝顺的子女耐心的看下去!
  15. 一体机电脑属于微型计算机,微型计算机在机电一体化中的地位
  16. 洛谷P4084 [USACO17DEC]Barn Painting G 题解
  17. 阿龙的学习笔记--- B-树和B+树 以及 MySQL的索引机制总结
  18. JAVA学习56_用UltraEdit代替“笨重”的IDE,实现轻巧编程!
  19. PROCEDURE和 FUNCTION的区别
  20. 有oracle操作系统,哪些操作系统可以安装ORACLE软件

热门文章

  1. 【blog】用emoji-java解决Emoji存储MySQL乱码问题
  2. Catharanthus roseus(长春花碱)的生物合成
  3. c#中sqlhelper类的编写(一)
  4. 微信公众平台体验之三(手机号归属)
  5. 8个前端技术学习网站
  6. kuangbin专题十二 基础DP1【从入门到熟练】【10题】
  7. Centos7-安装Gradle4.10
  8. 洛谷P2280 [HNOI2003] 激光炸弹 [前缀和]
  9. 【Selenium2】【HTMLTestRunner】
  10. 【LeetCode】数组-1(643)-返回规定长度k的最大子数组的平均数