首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏微卡智享

    学习|Android属性动画的组合动画之二--AnimatorSet

    AnimatorSet的使用 ? 微卡智享 AnimatorSet和AnimationSet中的大部分播放设计的函数都是差不多的,但是相比较而言AnimatorSet要比AnimationSet要强大的多。 AnimatorSet.Builder(自由设置动画顺序) AnimatorSet.Builder可以实现playSequentially和playTogether无法实现的效果,比如说有三个动画,我们想先放第二个后 AnimatorSet中的play方法是获取AnimatorSet.Builder对象的唯一途径 public Builder with(Animator anim) 和前面动画一起执行 public 本篇主要把关于AnimatorSet的常用方法介绍了一下,更多的细节操作可以查看AnimatorSet的一些相关文档。 完

    3K10发布于 2019-11-24
  • 来自专栏Android常用基础

    自定义View(六)-动画- AnimatorSet与XML设置属性动画

    animatorSet = new AnimatorSet(); animatorSet.playSequentially(tv1BgAnimator, tv1TranslateY, animatorSet = new AnimatorSet(); animatorSet.playSequentially(tv1BgAnimator, tv1TranslateY, AnimatorSet.Builder : //调用AnimatorSet中的play方法是获取AnimatorSet.Builder对象的唯一途径 animatorSet = new AnimatorSet(); animatorSet.setDuration(2000); animatorSet.play(tv2TranslateY animatorSet.setDuration(2000); animatorSet.setTarget(mTv2); animatorSet.start(); ?

    1.8K20发布于 2018-09-11
  • 来自专栏NanBox

    实现一个带浮动标签的输入框

    animatorSet = new AnimatorSet(); animatorSet.setDuration(100); animatorSet.setInterpolator(new DecelerateInterpolator()); animatorSet.play(scaleX).with(scaleY); //两个动画同时开始 animatorSet.start (); animatorSet.addListener(new Animator.AnimatorListener() { @Override public void animatorSet = new AnimatorSet(); animatorSet.setDuration(100); animatorSet.setInterpolator(new DecelerateInterpolator()); animatorSet.play(scaleX).with(scaleY); //两个动画同时开始 animatorSet.start

    1.8K10发布于 2019-07-09
  • 来自专栏HenCoder

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

    这就需要用到 AnimatorSet 了。 .); animator2.setInterpolator(new DecelerateInterpolator()); AnimatorSet animatorSet = new AnimatorSet (); // 两个动画依次执行 animatorSet.playSequentially(animator1, animator2); animatorSet.start(); ? AnimatorSet 还可以这么用: // 两个动画同时执行 animatorSet.playTogether(animator1, animator2); animatorSet.start(); ).after(animator2); animatorSet.start(); 有了 AnimatorSet ,你就可以对多个 Animator 进行统一规划和管理,让它们按照要求的顺序来工作。

    1.3K20发布于 2018-08-20
  • 来自专栏Android开发

    Android动画之属性动画

    要介绍的有: 1.透明动画:alpha 2.位移动画:translationX,translationY 3.旋转动画:rotation 4.缩放动画:scaleX,scaleY 5.组合显示:AnimatorSet 透明动画:alpha 2.位移动画:translationX,translationY 3.旋转动画:rotation 4…缩放动画:scaleX,scaleY 5.组合显示:AnimatorSet animatorSet = new AnimatorSet(); //同时播放 animatorSet.play(objectAnimator1).with(objectAnimator2 (list);//按照顺序播放 animatorSet.playTogether(list);//同时执行 */ //设置时长 animatorSet.setDuration (3000); //启动 animatorSet.start(); } }

    29210编辑于 2025-06-12
  • 来自专栏青蛙要fly的专栏

    Android技能树 — 动画小结

    .); animator2.setInterpolator(new DecelerateInterpolator()); AnimatorSet animatorSet = new AnimatorSet AnimatorSet 还可以这么用: // 两个动画同时执行 animatorSet.playTogether(animator1, animator2); animatorSet.start();以及这么用 : // 使用 AnimatorSet.play(animatorA).with/before/after(animatorB) // 的方式来精确配置各个 Animator 之间的关系 animatorSet.play (animator1).with(animator2); animatorSet.play(animator1).before(animator2); animatorSet.play(animator1 ).after(animator2); animatorSet.start(); 复制代码 有了 AnimatorSet ,你就可以对多个 Animator 进行统一规划和管理,让它们按照要求的顺序来工作

    1K20发布于 2018-08-29
  • 来自专栏深入理解Android

    从零开始学Android自定义View之动画系列——属性动画(2)

    实现组合动画功能主要需要借助AnimatorSet这个类,这个类提供了一个play()方法,如果我们向这个方法中传入一个Animator对象(ValueAnimator或ObjectAnimator)将会返回一个 AnimatorSet.Builder的实例,AnimatorSet.Builder中包括以下四个方法: • after(Animator anim) 将现有动画插入到传入的动画之后执行 • after animatorSet = new AnimatorSet(); animatorSet.play(moveIn).with(rotate).after(fadeInOut); animatorSet.setDuration (5000); animatorSet.start(); 可以看到,这里我们先是把三个动画的对象全部创建出来,然后new出一个AnimatorSet对象之后将这三个动画对象进行播放排序,让旋转和淡入淡出动画同时进行 另外AnimatorSet也是继承自Animator的,因此addListener()这个方法算是个通用的方法。

    71410编辑于 2022-06-22
  • 来自专栏小陈飞砖

    android滑动的六种方式

    viewGroup.getScrollY()); invalidate(); //6.1、属性动画 AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether( ObjectAnimator.ofInt

    40530编辑于 2022-06-25
  • 来自专栏android技术

    Android--属性动画基础

    方法4.动画集合AnimatorSet public void startAnimation(View view) { final ImageView iv = (ImageView animatorSet = new AnimatorSet(); animatorSet.setDuration(500); // animatorSet.play(animator3 ).with(animator2).after(animator1);//animator1在前面 // animatorSet.play(animator3).with(animator2) .before(animator1);//animator1在后面 // animatorSet.playTogether(animator1,animator2,animator3);//同时执行 animatorSet.playSequentially(animator1, animator2, animator3);//按顺序执行 animatorSet.start

    70020发布于 2020-07-03
  • 来自专栏ppjun专栏

    Android十八章:属性动画Android属性动画(第一话)

    objectAnimator.setDuration(500); objectAnimator.start(); 如果你觉得单单实现一种动画还不够炫,如果你想同时实现多个动画,你要用到动画组合AnimatorSet AnimatorSet 把多个ObjectAnimator按顺序连接起来,比如把上面的缩放,移动,设置透明度组合起来 ObjectAnimator scaleYAnimator=ObjectAnimator.ofFloat animatorSet=new AnimatorSet(); animatorSet.play(scaleYAnimator).with(translationXAnimator).with(alphaAnimator ); animatorSet.setDuration(500); animatorSet.start(); 这里Animator.after将其他动画加到这个动画之后,还可以传入动画设置两个动画的间隔, <set>标签代表一个AnimatorSet,在set标签内默认按照从上到下顺序加载不同的动画(就是在set设置android:ordering="sequentially"),如果你想同步进行就设置android

    1.3K10发布于 2018-09-05
  • 来自专栏史上最简单的Spring Cloud教程

    android动画解析(初级)

    5.组合动画 实现组合动画功能主要需要借助AnimatorSet这个类,这个类提供了一个play()方法,如果我们向这个方法中传入一个Animator对象(ValueAnimator或ObjectAnimator )将会返回一个AnimatorSet.Builder的实例,AnimatorSet.Builder中包括以下四个方法: after(Animator anim) 将现有动画插入到传入的动画之后执行 ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textView, "alpha", 1f, 0f, 1f); AnimatorSet animSet = new AnimatorSet(); AnimatorSet.Builder builder=animSet.play(rotate);

    64420编辑于 2022-11-30
  • 来自专栏Android知识点总结

    D10-Android自定义控件之动画篇2-动画监听

    本篇接上一篇: AnimatorSet的使用,将多个Animator组合进行动画 动画的监听 ---- 一、AnimatorSet的使用 在此之前先看一下AnimatorSet、Animator 、ObjectAnimator、ValueAnimator的关系 可见Animator是最上层的抽象类,定义了动画的基本操作,AnimatorSet、ValueAnimator作为子类,ObjectAnimator set动画集合.gif AnimatorSet set = new AnimatorSet(); set .play(translationX()) .with(alpha

    58720发布于 2018-09-29
  • 来自专栏每天学点Android知识

    初识属性动画——使用Animator创建动画

    Time interpolation:时间插值器,是一个函数,property=f(time),随着时间计算属性的函数 重复次数和行为:可以指定动画是否重复,以及重复次数;也可以指定动画是否reverse AnimatorSet 关于API 主要是ValueAnimator,ObjectAnimator,AnimatorSet,类结构图如下所示: ? AnimatorSet 如果需要同时开启多个动画,那么可以使用AnimatorSet,串联组织多个动画。 先看效果: ? ObjectAnimator.ofFloat(tvShow, View.ALPHA, 1f, 0f, 1f) btnMove.setOnClickListener { AnimatorSet alphaEndAnim) start() } } 总结 至此,我们可以使用ValueAnimator、ObjectAnimator或AnimatorSet

    1K20发布于 2019-08-17
  • 来自专栏tea9的博客

    安卓listview-adapter

    animSet=new AnimatorSet(); animSet.playTogether(animator,animator2); animator2 = ObjectAnimator.ofFloat(holder.redback, "translationX", 0, -(dm.widthPixels)); AnimatorSet animSet=new AnimatorSet(); animSet.playTogether(animator,animator2); animSet.setDuration ObjectAnimator animator2 = ObjectAnimator.ofFloat(holder.redback, "translationX", 0, -0); AnimatorSet animSet=new AnimatorSet(); animSet.playTogether(animator,animator2); animSet.setDuration

    54310编辑于 2022-07-16
  • 来自专栏我就是马云飞

    直播间气泡效果

    ; ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(bubble,"scaleY",0.2f,1f); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.addListener(new AnimatorListenerAdapter() { Animator animation) { startBezierAnimation(bubble); } }); animatorSet.setDuration (300); animatorSet.playTogether(alphaAnimator,scaleXAnimator,scaleYAnimator); animatorSet.start 然后用AnimatorSet一起播放。动画播放完毕这周执行上升的动画,下面会用到贝塞尔曲线知识,这里我推荐一个模拟贝塞尔曲线运动路径的在线网址如图所示: ? ?

    2.7K50发布于 2018-02-05
  • 来自专栏everhad

    札记:Property动画

    它的子类有: AnimatorSet, ValueAnimator 、 ObjectAnimator, TimeAnimator 等。 使用AnimatorSet 可以使用AnimatorSet组合多个ValueAnimator,可以是其它的AnimatorSet。 对应实现代码: AnimatorSet bouncer = new AnimatorSet(); bouncer.play(bounceAnim).before(squashAnim1); bouncer.play animatorSet = new AnimatorSet(); animatorSet.play(bouncer).before(fadeAnim); animatorSet.start(); Animation 在代码中: AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext, R.anim.property_animator

    1.3K70发布于 2018-01-08
  • 来自专栏github@hornhuang

    Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

    ) .setDuration(4000) .start(); // 缩放 final AnimatorSet animatorSet = new AnimatorSet(); mScaleImage.setPivotX(mScaleImage.getWidth()+250); mScaleImage.setPivotY(mScaleImage.getHeight()+250); animatorSet.playTogether( (); // 平移 translation final AnimatorSet translationAnimatorSet = new AnimatorSet translationAnimatorSet.start(); // 利用 ObjectAnimator 实现旋转动画 final AnimatorSet

    4.6K30发布于 2021-09-24
  • 来自专栏用户9239674的专栏

    自定义view仿写今日头条点赞动画!

    }         });         //动画集合         AnimatorSet animatorSet = new AnimatorSet();         animatorSet.play "alpha", 1f, 1f, 1f, 1f, 1f, 1f, 1f, 0f);         alphaAnimation.setDuration(DURATION / 5);         AnimatorSet  animatorSetDown = new AnimatorSet();//设置动画播放顺序         //播放上升动画         animatorSet.start();          animatorSet.addListener(new Animator.AnimatorListener() {             @Override             public void

    62510编辑于 2021-12-28
  • 来自专栏Sorrower的专栏

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

    又见栗子 ---- 用AnimatorSet进行动画混合 一般来说, 让人感觉舒服的动画都不会是单一变换的动画, 肯定要各种动画混合一起, 来达到某种效果. scaleY", 1f, 5f, 1f); ObjectAnimator scaleX = ObjectAnimator.ofFloat(tvTest, "scaleX", 1f, 5f, 1f); AnimatorSet animSet = new AnimatorSet(); animSet.play(scaleY).with(scaleX).after(translationY); animSet.setDuration AnimatorSet animSet = new AnimatorSet(); animSet.playTogether(translationY, scaleX, scaleY); animSet.setDuration AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.anim_set

    88830发布于 2018-09-04
  • 来自专栏程序IT圈

    传感器实现仿微信摇一摇功能

    R.raw.kakaka,1);//将资源转化为可播放对象 } private void playAnim() { //微信摇一摇动画 AnimatorSet animatorSet=new AnimatorSet(); int width=image1.getWidth(); ObjectAnimator down_image2=ObjectAnimator.ofFloat(image2,"translationY",height,0);//返回 animatorSet.play (up_image1).with(down_image1);//先执行up1--down1 animatorSet.play(up_image2).after(up_image1) .with(down_image2);//后执行 animatorSet.setDuration(1000); animatorSet.start();//执行动画

    1.9K20发布于 2021-01-18
领券