首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ValueAnimator如何已经运行停止做任何新的动画,直到它的结束,如队列或smth

ValueAnimator是Android平台上用于创建和控制动画效果的类。它可以用来实现属性动画,即改变对象的属性值来实现动画效果。

当我们需要停止ValueAnimator并等待其完成后再执行新的动画时,可以通过以下步骤实现:

  1. 首先,我们需要创建一个ValueAnimator对象,并设置动画的目标属性、起始值和结束值。例如,我们可以创建一个ValueAnimator对象来改变一个View的透明度:
代码语言:txt
复制
ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
animator.setTarget(view);
animator.setDuration(1000); // 动画持续时间为1秒
animator.setInterpolator(new AccelerateDecelerateInterpolator()); // 设置动画插值器
  1. 接下来,我们可以添加一个AnimatorListener来监听动画的状态变化。在动画结束时,我们可以在监听器的onAnimationEnd方法中执行下一次动画。
代码语言:txt
复制
animator.addListener(new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
        // 执行下一次动画
    }
});
  1. 当我们需要停止当前的ValueAnimator并等待其完成后再执行新的动画时,可以调用animator.cancel()方法来取消当前动画。然后,在监听器的onAnimationEnd方法中执行下一次动画。
代码语言:txt
复制
animator.cancel();

这样,当动画结束后,会自动执行下一次动画。

ValueAnimator的优势在于它可以实现平滑的动画效果,并且可以对多个属性同时进行动画处理。它适用于各种场景,如界面过渡动画、属性变化动画等。

腾讯云提供了一系列云计算相关产品,其中与动画开发相关的产品包括:

  1. 腾讯云移动应用分析(MTA):提供移动应用数据分析和用户行为分析的服务,可以帮助开发者了解用户对动画效果的反馈和使用情况。详细信息请参考:腾讯云移动应用分析(MTA)
  2. 腾讯云移动推送(TPNS):提供移动设备消息推送的服务,可以用于在动画完成后向用户发送通知或提示。详细信息请参考:腾讯云移动推送(TPNS)

以上是关于ValueAnimator的简要介绍和相关腾讯云产品的推荐。希望对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

这个类并没有继承自任何类,那么实现动画原理又是什么呢?...上一篇博客属性动画 ValueAnimator 运行原理全解析中,我们已经ValueAnimator 运行原理分析完了,感兴趣可以回去看看,这里大概提几点结论: ValueAnimator 内部其实并没有进行任何...想想自己使用 ValueAnimator 时候是不是这样,我们并没有将 View 作为参数传递给 ValueAnimator,所以内部也就没有持有任何 View 引用,自然不了任何 ui 操作。...这是因为,如果我们想要在动画开始结束时候一些事,如果我们是这样使用: mView.animate().scaleX(1.2f) .setListener(new AnimatorListenerAdapter...也就是说,多组动画可以处于并行状态,但是它们内部动画是没有交集,如果有交集,比如 SCALE_X 动画已经运行中了,但是外部又新设置了一个 SCALE_X 动画,那么之前那个动画就会被取消掉

1.4K50

属性动画 ValueAnimator 运行原理全解析

最近下班时间都用来健身还有看书了,博客被晾了一段时间了,原谅我~~~~ 提问环节 好,废话不多说,之前我们已经分析过 View 动画 Animation 运行原理解析,那么这次就来学习下属性动画运行原理...其实还有一个 View.animate(),这个内部原理也是属性动画,而且已经将常用动画封装好了,使用起来很方便,但会有一个坑,我们留着下一篇来介绍,本篇着重介绍属性动画运行原理。...,为所有的属性动画服务,列表里存放着所有正在进行准备开始属性动画; 如果当前存在要运行动画,那么 AnimationHandler 会去通过 Choreographer 向底层注册监听下一个屏幕刷新信号...梳理清楚后,大伙应该就要清楚,属性动画如何接收到屏幕刷新信号事件?是如何反复接收到屏幕刷新信号事件直到整个动画执行结束?方式是否是有区别于 Animation 动画?...VauleAnimatior运行原理时序图.png 最后,有一点想提是,我们本篇只是过完了 ValueAnimator 整个流程原理,但这整个过程中,注意到了没有,我们并没有看到有任何一个地方涉及到了

2K91
  • 自定义View(三)-动画-属性动画ValueAnimator

    ---- 介绍 我们在第一篇文章时候就提到过动画分类:视图动画,属性动画。当时我们讲解了2者区别。但是我们没有分析具体2者不同与使用场景。并且已经有了View动画,为何有加入属性动画呢?...View动画之所以叫视图动画,因为动画是对控件视图,影像动画,并没有改变控件属性。所以当我们用视图动画完成后造成点击事件与setVisibility(View.GONE)失效。...那我实际运行下: ? vis.gif 可以看到,当我们没有动画时候隐藏控件与点击事件都是有效。但是当我们在动画完成后,点击控件却没有响应点击事件,同时隐藏也无效。...---- ValueAnimator ValueAnimator本身不作用与任何对象,也就是说直接使用时没有任何动画效果。它可以对一个值动画。...就是复制出来一个完全一样ValueAnimator实例出来。对原来那个ValueAnimator是怎么处理,在这个实例中也是全部一样

    1.4K31

    【Android 属性动画】属性动画 Property Animation 工作原理 ( 线性插值动画 | 非线性插值动画 | 动画计算 | 经过分数 | 插值分数 | 类型估值器)

    ( 像素 ) ; 5.动画停止 : 在 40ms ( 毫秒 ) 结尾时 , 动画停止 , 该组件停在水平方向 40px ( 像素 ) 位置 ; 6.线性插值器 : 该示例中 , 动画使用插值器是线性插值器..., 即该组件以匀速运动方式生成动画 ; ---- 二、非线性插值动画示例 ---- 非线性插值动画示例 : 1.非线性插值器 : 可以给动画指定一个非线性差值器 , 动画会以加速减速形式运动 ;...4.开始阶段 : 在开始阶段 , 开始位置 到 中点位置 , 组件加速运动 ; 5.结束阶段 : 在结束阶段 , 中点位置 到 结束位置 , 组件减速运动 ; 组件在开始和结尾时间段运行距离 , 要少于中间时间阶段运行距离...; ---- 三、动画计算方式 ---- 属性动画系统中计算动画重要组件 : 1.ValueAnimator ( 值动画类 ) : 该对象追踪动画计时时间 和 属性值设置 , 动画已经运行了多长时间...; 3.出现 时间经过分数 ( Elapsed Fraction ) : 在动画执行过程中 , ValueAnimator 基于动画总时间 T , 和 已经经过时间 t , 计算出 时间经过分数

    1K30

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

    3.0 开始引入动画形式,不过说它只是相对已经有好几年历史了,而且现在项目中动画 99% 都是用,极少再用到 View Animation 了。...视频里已经说过了,这个是一种最符合现实中物体运动 Interpolator,动画效果看起来就像是物体从速度为 0 开始逐渐加速,然后再逐渐减速直到 0 运动。...在整个动画过程中,一直在加速,直到动画结束一瞬间,直接停止。 ? 别看见加速骤停就觉得这是个神经病模型哦,很有用主要用在离场效果中,比如某个物体从界面中飞离,就可以用这种效果。...DecelerateInterpolator 持续减速直到 0。 动画开始时候是最高速度,然后在动画过程中逐渐减速,直到动画结束时候恰好减速到 0。 ?...则独有 withStartAction() 和 withEndAction() 方法,可以设置一次性动画开始结束监听。

    84820

    Android开发之漫漫长途 XVII——动画(续)

    自定义View动画步骤:如果我们不满足于系统已经定义好Animation,=,可以自定义自己Animation,重写initialize和applyTransformation这两个方法即可。...那么本章呢是来介绍Android动画另外一个大类属性动画 属性动画简介  属性动画是API11加入特性,和View动画不同,它可以对任何对象动画,甚至还可以没有对象,动画默认时间间隔300ms,...注:gihub上JakeWharton大神对API11之前做了属性动画兼容,原理其实也很简单,主要就是判断当前sdk版本,如果大于API11,那么就调用官方API,否则自己实现动画效果。...对应ValueAnimator, android:duration:表示动画时长 android:valueFrom:表示属性起始值 android:valueTo:表示属性结束值...(VIEW.GONE)失效,或者其他异常情况,使用View.clearAnimation()清除动画即可 内存泄露,在属性动画中有一类无限循环动画,这类动画要在Activity销毁之前及时停止,否则会造成

    27510

    Android 属性动画详解,属性动画基本用法

    从更高层次上来说,你可以选择你想要属性,来给其添加动画颜色、位置大小,并且你可以通过插值器或者多个动画同步,来定义你所需要动画。 然而补间动画需要较少时间来设置,并且也需要更少代码。...通过上面的介绍,相信大家已经明白了属性动画产生原因,了解了产生背景之后,接下来一步就是要学习用法了。...执行上面的代码就执行了一个值从0到1平滑过渡动画,从上面的代码中可以看出并没有与任何控件任何属性有关系,从名字也能看出来它是对值平滑过渡,我们怎么知道呢?...运行上述代码打印结果如下: ? 从打印结果中可以看到valueAnimator值在200毫秒内从0逐渐变化到了1,这些中间过程谷歌已经帮我们实现好了。...小总结: ValueAnimator是计算动画过程中变化值,包含动画开始值,结束值,持续时间等属性。

    1.2K50

    Android属性动画完全解析(上),初识属性动画基本用法

    引入属性动画机制已经不再是针对于View来设计了,也不限定于只能实现移动、缩放、旋转和淡入淡出这几种动画操作,同时也不再只是一种视觉上动画效果了。...我们只需要告诉系统动画运行时长,需要执行哪种类型动画,以及动画初始值和结束值,剩下工作就可以全部交给系统去完成了。...ValueAnimator ValueAnimator是整个属性动画机制当中最核心一个类,前面我们已经提到了,属性动画运行机制是通过不断地对值进行操作来实现,而初始值和结束值之间动画过渡就是由ValueAnimator...内部使用一种时间循环机制来计算值与值之间动画过渡,我们只需要将初始值和结束值提供给ValueAnimator,并且告诉动画所需运行时长,那么ValueAnimator就会自动帮我们完成从初始值平滑地过渡到结束值这样效果...用法就是这么简单,现在如果你运行一下上面的代码,动画就会执行了。可是这只是一个将值从0过渡到1动画,又看不到任何界面效果,我们怎样才能知道这个动画是不是已经真正运行了呢?

    1.6K70

    备战金九银十:BAT大厂最爱问Android核心面试百题详细解析!

    该应用程序架构设计简化了组件重用;任何一个应用程序都可以发布功能块并且任何其它应用程序都可以使用其所发布功能块。...属性动画运行机制是通过不断地对值进行操作来实现,而初始值和结束值之间动画过渡就是由ValueAnimator这个类来负责计算。...内部使用一种时间循环机制来计算值与值之间动画过渡,我们只需要将初始值和结束值提供给ValueAnimator,并且告诉动画所需运行时长,那么ValueAnimator就会自动帮我们完成从初始值平滑地过渡到结束值这样效果...而且每次启动一个 Activity,都会重新创建实例,不管这个实例在任务中是否已经存在。...Property Animation(属性动画) 是3.0后推出动画,优点是使用简单、降低实现复杂度、直接更改对象属性、几乎可适用于任何对象而仅非View类,主要包括ValueAnimator和ObjectAnimator

    1.2K31

    Android 属性动画:这是一篇很详细 属性动画 总结&攻略

    过渡到 结束值500 // 步骤2:设置动画播放各种属性 valueAnimator.setDuration(2000); // 设置动画运行时长:1s // 步骤...& IntEvaluator 即系统已经默认实现了 如何从初始值 过渡到 结束逻辑 但对于ValueAnimator.ofObject(),从上面的工作原理可以看出并没有系统默认实现,...因为对对象动画操作复杂 & 多样,系统无法知道如何从初始对象过度到结束对象 因此,对于ValueAnimator.ofObject(),我们需自定义估值器(TypeEvaluator)来告知系统如何进行从...public float getRotation(); // 实际上,这两个方法是由View对象提供,所以任何继承自View对象都具备这个属性 至于是如何进行自动赋值,我们直接来看源码分析:...问题 那么,针对上述对象属性set()不是设置属性 根本没有`set() / get ()`情况应该如何处理? c.

    3.7K10

    android系统中toast是什么_Android个人资料简单布局

    老规矩,先上效果图吧 主要实现了几种常用方式: 1.最基本Toast 系统自带Toast采用队列方式, 等当前Toast消失后, 下一个Toast才能显示出来;原因是Toast管理是在队列中...,点击一次,就会产生一个Toast,要等这个队列Toast处理完,这个显示Toast任务才算结束。...(); } } /** * 开始动画 * @param start 起始值 * @param end 结束值 * @param time 动画时间 * @return */ public ValueAnimator...//设置 ValueAnimator 起始值和结束valueAnimator.setDuration(time); //设置动画时间 valueAnimator.setInterpolator...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    58220

    Android动画基础详析 | 属性动画基础及ValueAnimator

    既然补间动画和逐帧动画已经很全了,为什么还要引入属性动画呢? 假设:如何利用补间动画来将一个控件背景色在1分钟内从绿色变为红色?...响应区没有改变;缩放动画结束后获取View长宽其值亦没有改变) 属性动画能够真正属性改变; 视图动画实现效果,属性动画都能实现; 从直观上来看,视图动画与属性动画有如下三点不同。...; Animator子类 ValueAnimator 控制值变化; 属性动画干的事情,就是在一段时间内让属性值不断地变化; ValueAnimator 就是令这个属性值不断地变化驱动...; ValueAnimator 在上篇博客Android动画基础详析 | 概述、逐帧动画、视图动画(附诸多实际运行效果动图)基础上我们新建一个property包和一个PropertyActivity:...clone()函数就是复制出来一个完全一样ValueAnimator实例, 对原来ValueAnimator是怎么处理, 在这个实例中也采用相同处理方式; 至此,补充一个实战:

    1.4K20

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

    引入属性动画机制已经不再是针对于View来设计了,也不限定于只能实现移动、缩放、旋转和淡入淡出这几种动画操作,实际上是一种不断地对值进行操作机制,并将值赋值到指定对象指定属性上,可以是任意对象任意属性...我们只需要告诉系统动画运行时长,需要执行哪种类型动画,以及动画初始值和结束值,剩下工作就可以全部交给系统去完成了。...ValueAnimator 属性动画运行机制是通过不断地对值进行操作来实现,而初始值和结束值之间动画过渡就是由ValueAnimator这个类来负责计算。...内部使用一种时间循环机制来计算值与值之间动画过渡,我们只需要将初始值和结束值提供给ValueAnimator,并且告诉动画所需运行时长,那么ValueAnimator就会自动帮我们完成从初始值平滑地过渡到结束值这样效果...用法就是这么简单,现在如果你运行一下上面的代码,动画就会执行了。可是这只是一个将值从0过渡到1动画,又看不到任何界面效果,我们怎样才能知道这个动画是不是已经真正运行了呢?

    1.5K30

    Android动画绘制原理(源码解析)

    前言 Android 平台提供了三类动画,一类是 Tween 动画-Animation,即通过对场景里对象不断图像变换 ( 平移、缩放、旋转 ) 产生动画效果;第二类是 Frame 动画,即顺序播放事先做好图像...PropertyValuesHolder这个类意义就是,其中保存了动画过程中所需要操作属性和对应值。...Choreographer 回调都配post进入了当前线程looper队列中。 mRepeatCount 无穷大,会导致该循环会一直执行下去,即使关闭当前页面也不会停止。...View动画问题 View动画对View影像动画,并不是真正改变View状态,因此有时候会出现动画完成后View无法影藏现象,即setVisibility(View.GONE)失效了,这个时候只要调用...动画元素交互 将View移动(平移)后,在Android3.0之前系统上,不管是View动画还是属性动画位置均无法触发单击事件,同时老位置任然可以触发单击事件。

    3.4K30

    Android动画深入分析

    动画分类 Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11特性,在低版本是无法直接使用属性动画,但可以用nineoldAndroids来实现(但是本质还是viiew...android:shareInterpolator表示集合中动画是否和集合共享同一个插值器,如果集合不指定插值器,那么子动画就需要单独指定所需插值器默认值。...属性动画对之前动画做了很大拓展,毫不夸张说,属性动画可以实现任何动画效果,因为在作用对象是属性(对象),属性动画中有几个概念需要我们注意下, ValueAnimator、ObjectAnimator...,我们怎么让运行起来呢?...使用无限循环属性动画时,在Activity退出时即使停止,否则将导致Activity无法释放从而造成内存泄露。

    845100

    Android动画分析

    动画分类 Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11特性,在低版本是无法直接使用属性动画,但可以用nineoldAndroids来实现(但是本质还是viiew...android:shareInterpolator表示集合中动画是否和集合共享同一个插值器,如果集合不指定插值器,那么子动画就需要单独指定所需插值器默认值。...属性动画对之前动画做了很大拓展,毫不夸张说,属性动画可以实现任何动画效果,因为在作用对象是属性(对象),属性动画中有几个概念需要我们注意下, ValueAnimator、ObjectAnimator...,我们怎么让运行起来呢?...使用无限循环属性动画时,在Activity退出时即使停止,否则将导致Activity无法释放从而造成内存泄露。

    88070

    札记:Property动画

    Animator sets:动画集合,若干动画一起依次执行。 Frame refresh delay:帧率,默认是10ms,但最终决定与系统运行负载和对底层时钟响应速度。所给值仅仅是期望值。...首先使用ValueAnimator来定义动画保存动画开始值startPropertyValue、结束值endPropertyValue,以及动画持续时间duration; 当执行方法start()...动画仅改变了view绘制内容,而位置信息没有变化。 属性动画没有以上限制,可以针对任何对像任何属性,而且真实地改变了这些属性。...而属性动画可以是针对任意类型对象,它是以组合方式,实现上仅仅是调用目标对象方法,几乎不对要动画类型要求。所以设计上看属性动画更合理些。...最终使得一些动画在另一些动画开始前结束后执行,多个动画同时或依次执行,其中一些动画延迟执行等。 下面是API demo中一个案例代码片段,其功能是: Plays bounceAnim.

    1K70

    Android 属性动画:这是一份全面 & 详细核心使用类ValueAnimator学习指南

    3.3 具体使用 因为ValueAnimator本质只是一种值操作机制,所以下面的介绍先是展示如何改变一个值过程(下面的实例主要讲解:如何将一个值从0平滑地过渡到3) 至于如何实现动画,是需要开发者手动将这些...:设置动画播放各种属性 valueAnimator.setDuration(2000); // 设置动画运行时长:1s // 步骤3:将属性数值手动赋值给对象属性:...(根据来计算当前动画值) // startValue、endValue:动画初始值和结束值 float startFloat = ((Number) startValue).floatValue...& IntEvaluator 即系统已经默认实现了 如何从初始值 过渡到 结束逻辑 但对于ValueAnimator.ofObject(),从上面的工作原理可以看出并没有系统默认实现,因为对对象动画操作复杂...更加智能、自动化程度更高 至此,关于属性动画中最核心 ValueAnimator已经讲解完毕。

    1.1K50

    Android 中属性动画 --- 1(基本用法)

    由于这个巨大局限性,Google 在 Android 3.0 以上添加了一个动画框架:属性动画。下面来一起看一下属性动画用法: 如果你熟悉视图动画使用方法,那么属性动画用法一定没问题。...下面来看看运行效果: ?...这是一个简单平移动画,当按钮移动完成之后,我们再次点击这个按钮(明显已经不在原来位置)时,仍然响应了点击事件,重新开始了动画,这证明属性动画确实是“原原本本对 View 本身进行操作”。...上面是使用自定义类方式来包装 View 对象并提供操作对应属性方法,下面看看如何使用 ValueAnimatorValueAnimator 是属性动画核心部分,为什么这么说呢?...ValueAnimator 本身不提供任何动画效果,任务只是依据动画完成度和某个公式(插值器,下一篇文章会介绍)来提供具有一定规律数字,之后动画执行者获取到这个数字之后设置 View 对象要操作属性

    1.1K20
    领券