- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Sceneform
创建一个播放动画的 android 应用程序。我正在尝试使用 AnimatorSet
按顺序启动多个 Animator。该代码在尝试播放两个动画时完美运行,但每当我添加第三个动画时,前两个动画播放然后应用程序崩溃。
这是一段代码:
List<Animator> animatorList = new ArrayList<Animator>();
AnimationData ad1 = JimRenderable.getAnimationData("Abm_09|A");
Animator a = new ModelAnimator(ad1, JimRenderable);
animatorList.add(a);
AnimationData ad2 = JimRenderable.getAnimationData("Abm_09|B");
a = new ModelAnimator(ad2, JimRenderable);
animatorList.add(a);
AnimationData ad3 = JimRenderable.getAnimationData("Abm_09|C");
a = new ModelAnimator(ad3, JimRenderable);
animatorList.add(a);
AnimatorSet as= new AnimatorSet();
as.playSequentially(animatorList);
as.start();
如何让它播放超过 2 个动画?
最佳答案
AnimatorSet
public class, which extendsAnimator
class, provides a mechanism to group animations together so that they run in relation to one another. You can set animations to play simultaneously, sequentially, or after a specified delay.
您的代码应如下所示:
AnimatorSet bouncer = new AnimatorSet();
bouncer.play(bounceAnim).before(squashAnim1);
// THESE FOUR ANIMATIONS PLAY SIMULTANEOUSLY
bouncer.play(squashAnim1).with(squashAnim2);
bouncer.play(squashAnim1).with(stretchAnim1);
bouncer.play(squashAnim1).with(stretchAnim2);
bouncer.play(bounceBackAnim).after(stretchAnim2);
ValueAnimator fadeAnim = ObjectAnimator.ofFloat(newBall, "alpha", 1f, 0f);
fadeAnim.setDuration(250);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(bouncer).before(fadeAnim);
animatorSet.start();
In this code
squashAnim1
clip plays simultaneously withsquashAnim2
,stretchAnim1
, andstretchAnim2
.
这个例子解释了它是如何工作的:我们设置了一个 AnimatorSet
来播放:
anim1
和 anim2
同时,anim3
在 anim2
完成时播放,和 anim4
在 anim3
完成时播放:
AnimatorSet clips = new AnimatorSet();
clips.play(anim1).with(anim2);
clips.play(anim2).before(anim3);
clips.play(anim4).after(anim3);
此外,您还可以使用动画监听器
。他们可以在动画持续期间监听重要事件。这是一段代码:
ValueAnimator fadeAnim = ObjectAnimator.ofFloat(newBall, "alpha", 1f, 0f);
fadeAnim.setDuration(250);
fadeAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) {
balls.remove(((ObjectAnimator)animation).getTarget());
}
}
希望这对您有所帮助。
关于java - 如何使用 AnimatorSet 播放多个动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55681374/
我正在尝试使用 AnimatorSets 链接一组动画。 我有这样的东西: AnimatorSet sequentialSet = new AnimatorSet(); sequentialSet.p
我正在尝试让一个动画在另一个动画结束后开始。我正在使用动画属性并将对象定义为“AnimatorSet”。问题是第一个动画开始时没有问题,但第二个动画从未开始。 public void moveGrou
我需要的是一个可无限重复的 AnimatorSet(由 2 个连续的 animations 组成),同时也是一种在安全的情况下停止这些 animations 的方法方式(即最终状态与起始状态相同)。例
我正在尝试设置一个动画师监听器,所以最终对象动画师会发生一些事情!到目前为止,这是我的代码: as=new AnimatorSet(); as.addListener(new Ani
我需要将以下动画应用于 imageView: 1. alpha (0 -> 1) and scale (0 -> 1) in 500ms 2. pause for 1000ms 3. alpha (1
我想将 View “闪烁”3 倍(缩小和放大,重复 3 倍)。它有效,但不适用于 AnimatorSet。 这个有效: ibOffers.animate().scaleX(0.7f).scaleY(0
我们想在下面的方法中设置结束监听器: private void animation1() { ObjectAnimator scaleXAnimation = ObjectAnima
我无法弄清楚这段代码有什么问题。我通过调用 AnimatorSet.playTogether() 方法一起播放两个 Animator。但是 onAnimationEnd() 回调只被调用一次。为什么会
我已经尝试了几个小时,我觉得是时候放弃了。如何循环在 xml 中定义的 AnimatorSet? 我在单个 objectAnimator 上尝试了 star
我正在使用 Sceneform 创建一个播放动画的 android 应用程序。我正在尝试使用 AnimatorSet 按顺序启动多个 Animator。该代码在尝试播放两个动画时完美运行,但每当我添加
我正在使用 AnimatorSet 创建动画,当它结束时我想将 View 留在原处。 代码是这样的: mLastAnimation = new AnimatorSet(); mLastAnimatio
您好,我正在使用 AnimatorSet 和 ValueAnimator 将多个动画应用到一个 View 。 当用户触摸 View 时,连续的动画会应用到 View 。当用户在 View 上移动手指时
我创建了一个 AnimatorSet s1。 我想使用 s1 AnimatorSet 而不是 R.anim.slide_in_top 。 如何让事务使用s1? private void showsys
我有以下代码,它将图像分成两半并在不同方向为每个部分设置动画: final AnimatorSet mSetAnim = new AnimatorSet(); final Animator topAn
第一次尝试 RoboGuice。到目前为止,注入(inject) View 的一切都运行顺利。 自从我在 tutorial 中看到我可以注入(inject)资源我试图添加一个 AnimatorSet
我正在使用这样的 AnimatorSet playSequentially 方法: AnimatorSet set = new AnimatorSet(); ObjectAnimator in = O
我已经在某些设备上使用 ObjectAnimator 类进行了一些测试,除了一台设备外一切正常:Huawei P8 Lite 2017。 在此设备上,View 在动画开始时“消失”并在结束时“出现”。
这是我需要通过AnimatedVectorDrawableCompat实现的效果。 vector_drawable_anim.xml vector_drawable.xml
我有以下 AnimatorSet 方法: private AnimatorSet dialCenterThrob() { int bpm = workoutStream.getHeartRat
我有一个关于 Android 中的 ObjectAnimator 的问题。我正在尝试模拟一个弹跳效果,其中 View 向上滑动(减小 Y 值)并在相同数量“n”之后返回,然后 View 再次向上和向下
我是一名优秀的程序员,十分优秀!