首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏每天学点Android知识

    三谈属性动画——Keyframe以及ViewPropertyAnimator

    经过初识属性动画——使用Animator创建动画和再谈属性动画——介绍以及自定义Interpolator插值器,对属性动画已经介绍的差不多了,还剩下最后两个概念,Keyframe和ViewPropertyAnimator ViewPropertyAnimator 如果想在一个View上使用属性动画,可以这么操作: val animX = ObjectAnimator.ofFloat(myView, "x", 50f)val View作为最常被动画的对象,Android提供了一种封装,这就是ViewPropertyAnimator,使用方式也是很简单,比如上面的代码等效于: myView.animate().x(50f).y (100f) View.animate()方法会返回一个ViewPropertyAnimator,该对象具备View的常用属性的变换,比如: transitionX、transitionY、transitionZ developer.android.google.cn/reference/android/animation/Keyframe https://developer.android.google.cn/reference/android/view/ViewPropertyAnimator

    67730发布于 2019-08-17
  • 来自专栏AndroidTv

    View.animate()动画ViewPropertyAnimator原理解析

    mAnimator = new ViewPropertyAnimator(this); } return mAnimator; } 这个方法里会去创建一个 ViewPropertyAnimator 好了,流程上已经梳理清理了,接下去就是细节问题了,ViewPropertyAnimator 取得了每一帧对应的动画进度时又是如何进行的 ui 操作的呢? 所以,下面就先看看第一个步骤,跟着 scaleX() 进去看看: //ViewPropertyAnimator#scaleX() public ViewPropertyAnimator scaleX(float 总结 最后,就来进行一下总结: View.animate() 这种方式实现的动画其实是 ViewPropertyAnimator 动画。 所以到最后,ViewPropertyAnimator 内部的流程和原理虽然已经清楚了,但具体要不要将这个动画归纳到属性动画中,我就不大清楚了。

    1.6K50发布于 2018-05-17
  • 来自专栏郭霖

    Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

    ViewPropertyAnimator的用法 ViewPropertyAnimator其实算不上什么高级技巧,它的用法格外的简单,只不过和前面所学的所有属性动画的知识不同,它并不是在3.0系统当中引入的 那么下面我们就来看一下如何使用ViewPropertyAnimator来实现同样的效果,ViewPropertyAnimator提供了更加易懂、更加面向对象的API,如下所示: textview.animate 比起使用ObjectAnimator,ViewPropertyAnimator的用法明显更加简单易懂吧。 那么除了用法之外,关于ViewPropertyAnimator有几个细节还是值得大家注意一下的: 整个ViewPropertyAnimator的功能都是建立在View类新增的animate()方法之上的 ,这个方法会创建并返回一个ViewPropertyAnimator的实例,之后的调用的所有方法,设置的所有属性都是通过这个实例完成的。

    1.4K70发布于 2018-01-05
  • 来自专栏Sorrower的专栏

    动画必须有(一): 属性动画浅谈

    public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); } }); ---- ViewPropertyAnimator 上手 属性动画是谷歌在android3.0引入的, 而ViewPropertyAnimator则是3.1引入的, 这个ViewPropertyAnimator绝对可以说是个磨人的小妖精, 它绝对会让你爱上属性动画的 ViewPropertyAnimator栗子 用ViewPropertyAnimator的目的就是精简代码以及快速实现, 想要处理一些复杂的动画, 还是要用上一篇说的内容慢慢来的(滑稽脸). 好, 我们再来看一个及其经典的代码, 可以完美展现出ViewPropertyAnimator的精简好用: view.animate()// 获取ViewPropertyAnimator对象

    87430发布于 2018-09-04
  • 来自专栏HenCoder

    HenCoder Android 自定义 View 1-6:属性动画(上手篇)

    () 和 ViewPropertyAnimator.translationXBy() 这两个方法。 设置监听器的方法, ViewPropertyAnimator 和 ObjectAnimator 略微不一样: ViewPropertyAnimator 用的是 setListener() 和 setUpdateListener 由于 ViewPropertyAnimator 不支持重复,所以这个方法对 ViewPropertyAnimator 相当于无效。 方法的参数是一个 ValueAnimator,ValueAnimator 是 ObjectAnimator 的父类,也是 ViewPropertyAnimator 的内部实现,所以这个参数其实就是 ViewPropertyAnimator 3.3 ViewPropertyAnimator.withStartAction/EndAction() 这两个方法是 ViewPropertyAnimator 的独有方法。

    1K20发布于 2018-08-20
  • 来自专栏青蛙要fly的专栏

    Android技能树 — 动画小结

    ViewPropertyAnimator: ? 我直接引用了扔物线大佬文章里面的相关动画操作的图片: ? 用ViewPropertyAnimator 来做属性动画是最简单的。特别方便。 ViewPropertyAnimator多个动画进行: 如果想多个动画同时进行,只需要简单的: view.animate() .scaleX(1) .scaleY(1) ViewPropertyAnimator 和 ObjectAnimator的底部都是用ValueAnimator实现的,从字面意思就可以看出是数值的动画,也就是数值的变化。 所以你看,ViewPropertyAnimator、ObjectAnimator、ValueAnimator 这三种 Animator,它们其实是一种递进的关系:从左到右依次变得更加难用,也更加灵活。 但我要说明一下,它们的性能是一样的,因为 ViewPropertyAnimator 和 ObjectAnimator 的内部实现其实都是 ValueAnimator,ObjectAnimator 更是本来就是

    99320发布于 2018-08-29
  • 来自专栏向治洪

    listview滑动删除

                            }                       });           } else {   //将item滑动至开始位置             ViewPropertyAnimator.animate 我这里要说说ViewPropertyAnimator类,这个类能更好的实现一个View同时进行多个动画的功能,当然我们也可以使用ObjectAnimator利用AnimatorSet来实现一个View上的多个同时进行的动画效果 ,例如我们可以将 ViewPropertyAnimator.animate(mDownView)           .translationX(dismissRight ?  在性能上要比使用ObjectAnimator来实现多个同时进行的动画要高的多,举个例子,假如要对View使用移动和透明度的动画,使用ViewPropertyAnimator的话,某个时间点上我们只需要调用一次 invalidate()方法刷新界面就行了,而使用ObjectAnimator的话,移动的动画需要调用invalidate(),透明度的动画也需要调用invalidate()方法,在性能上使用AnimationSet比ViewPropertyAnimator

    2.1K70发布于 2018-01-29
  • 来自专栏向治洪

    Android入门之动画

    interpolator,以上几个都是实现了这个接口 ###PropertyValuesHolder 如果要实现一个对象不同属性的动画效果,除了Set,我们还可以利用PropertyValuesHolder和ViewPropertyAnimator Calls to {@link android.view.View#animate()} will return a reference to the appropriate ViewPropertyAnimator object for that View.` 如果需要对一个View的多个属性进行动画可以用ViewPropertyAnimator类,该类对多属性动画进行了优化,会合并一些invalidate()来减少刷新视图 view.animate()方法会返回ViewPropertyAnimator类。 并且这个机制对于组合动画也同样有效,只要我们不断地添加新的方法,那么动画就不会立刻执行,等到所有在ViewPropertyAnimator上设置的方法都执行完毕后,动画就会自动启动。

    94570发布于 2018-01-26
  • 来自专栏HenCoder

    HenCoder Android 进阶 UI 1-7:属性动画(进阶篇)

    如果使用 ViewPropertyAnimator,你可以直接用连写的方式来在一个动画中同时改变多个属性: view.animate() .scaleX(1) .scaleY 除了 ViewPropertyAnimator 和 ObjectAnimator,还有第三个选择是 ValueAnimator。ValueAnimator 并不常用,因为它的功能太基础了。 所以你看,ViewPropertyAnimator、ObjectAnimator、ValueAnimator 这三种 Animator,它们其实是一种递进的关系:从左到右依次变得更加难用,也更加灵活。 但我要说明一下,它们的性能是一样的,因为 ViewPropertyAnimator 和 ObjectAnimator 的内部实现其实都是 ValueAnimator,ObjectAnimator 更是本来就是

    1.3K20发布于 2018-08-20
  • 来自专栏三流程序员的挣扎

    Android 动画总结(1) - 概述

    参考资料,下面其它文章不再重复声明: Android开发艺术探索 Android高级进阶 Animation Resources Start an Activity with an Animation ViewPropertyAnimator

    61921发布于 2018-09-11
  • 来自专栏三流程序员的挣扎

    Android 动画总结(5) - 属性动画

    ,提供 getter/setter 方法,方法内部进行转变使得能够设置到属性上 使用 ValueAnimator,只计算,然后加 AnimatorUpdateListener,在监听里自己去改变效果 ViewPropertyAnimator ViewPropertyAnimator 提供了一种可以使多个属性同时做动画的简单方法,而且它在内部只使用一个 Animator。

    1.3K20发布于 2018-09-11
  • 来自专栏Open软件开发小组

    [Android技术专题]动画那点小秘密

    上),初识属性动画的基本用法、Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法和Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator 上),初识属性动画的基本用法 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator

    1.1K20发布于 2020-03-19
  • 来自专栏Android知识点总结

    RecyclerView零点突破(动画+边线篇)

    animateAddImpl(final ViewHolder holder) { final View view = holder.itemView;//获取布局视图 final ViewPropertyAnimator onAnimationStart(Animator animator) { view.setAlpha(1); ---- 1.2.2抖动 缩放抖动 移动抖动 感觉ViewPropertyAnimator = 0) { view.animate().translationY(0); } final ViewPropertyAnimator animation = view.animate

    1.2K20发布于 2018-12-24
  • 来自专栏程序员开发工具

    自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

    show(child); } } } private void hide(final View view) { ViewPropertyAnimator } }); animator.start(); } private void show(final View view) { ViewPropertyAnimator show(child); } } //隐藏时的动画 private void hide(final View view) { ViewPropertyAnimator }); animator.start(); } //显示时的动画 private void show(final View view) { ViewPropertyAnimator

    1.3K11发布于 2018-09-18
  • 来自专栏简易现代魔法

    Android 动画笔记

    animator 并指定你想动画化的 View 对象的属性就可以将其动画化了,例如: ObjectAnimator.ofFloat(myView, "rotation", 0f, 360f); 使用 ViewPropertyAnimator 进行动画化 # ViewPropertyAnimator 类提供了一个简单的方法来并行地动画化一个 View 对象的多个属性,并且在底层只用到了一个 Animator 对象。 而且,使用 ViewPropertyAnimator 的代码会更加清晰易读。 下面的代码片段展示了使用多个 ObjectAnimator、使用一个 ObjectAnimator 以及使用 ViewPropertyAnimator 来同时动画化地改变 View 对象的 x 和 y PropertyValuesHolder.ofFloat("y", 100f); ObjectAnimator.ofPropertyValuesHolder(myView, pvhX, pvyY).start(); 使用 ViewPropertyAnimator

    69120编辑于 2023-10-20
  • 来自专栏ADAS性能优化

    Using hardware layers to improve Android animation performance

    } }); // Start the animation animator.start(); If you're on minSdkVersion 16+ and you're using ViewPropertyAnimator

    61520编辑于 2022-05-13
  • 来自专栏Android技术分享

    Android:帧动画和补间动画看这篇就足够了!

    v.setAnimation(null); } /** * Returns true if the API level supports canceling existing animations via the * ViewPropertyAnimator false if it does not * @return true if the API level supports canceling existing animations via the * ViewPropertyAnimator

    2.3K30发布于 2019-08-07
  • 来自专栏everhad

    札记:Property动画

    可以像这样来获得一个对View进行旋转的动画: ObjectAnimator.ofFloat(myView, "rotation", 0f, 360f); ViewPropertyAnimator 如果一次同时修改一个对象的若干属性 ,那么ViewPropertyAnimator提供了一种便捷的方式。 PropertyValuesHolder.ofFloat("y", 100f); ObjectAnimator.ofPropertyValuesHolder(myView, pvhX, pvyY).start(); ViewPropertyAnimator

    1.3K70发布于 2018-01-08
  • 来自专栏微卡智享

    学习|Android属性动画的组合动画之一--AnimationSet

    AnimationSet和Animatorset 一般来说,Android实现动画组合有四种方式,分别是: AnimationSet AnimatorSet PropertyValuesHolder ViewPropertyAnimator

    3.8K10发布于 2019-11-25
  • 来自专栏程序员修炼之路

    转场动画导致OOM?属性动画持有Context的五个隐蔽场景

    使用ViewPropertyAnimator替代 view.animate() .alpha(1f) .setListener(null) // 默认无监听器 .withEndAction

    21400编辑于 2025-05-15
领券