视图动画队列

时间:2019-02-10 06:31:23

标签: java android

页面上我有几个let dict = userInfo as! [String : NSObject] let notification = CKNotification(fromRemoteNotificationDictionary: dict) if let queryNotification = notification as? CKQueryNotification, let recordName = queryNotification.recordID?.recordName { print("Record name is \(recordName)") } } 。每个动画都必须在前一个动画之后。

1)我认为每个动画都会有所延迟,但是在我看来,此选项不正确。

2)对于Views方法中Listener中的每个动画,我调用下一个动画。我从onAnimationEnd()拍摄动画。在这个决定中,我注意到下一个动画无法立即生效。而且我有一个8-10的xml,并且每个人都想实施Views,但是它也无法正常工作。

Listener只有3个,它占用了很多空间:

Views

问题:您如何将mLogo.startAnimation(zoomInAnim); zoomInAnim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mPackage.setVisibility(View.VISIBLE); mPackageBack.setVisibility(View.VISIBLE); mPackage.startAnimation(slideUpAnim); mPackageBack.startAnimation(slideUpAnim); slideUpAnim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mImage1.setVisibility(View.VISIBLE); mImage1.startAnimation(slideUpBounceAnim); } @Override public void onAnimationRepeat(Animation animation) { } }); } @Override public void onAnimationRepeat(Animation animation) { } }); } 和动画队列结合在一起,也许还有其他我不知道的解决方案?

1 个答案:

答案 0 :(得分:0)

如果动画的长度相同,则可以尝试以下操作:

ArrayList<View> views = new ArrayList<>(3);
int delay = 0;
for(View view : views){
    view.animatate....setStartDelay(delay);
    delay += 1000;
}

没有理由您的动画不会立即开始我写了一个自定义数字微调器视图,它得到了一个数字,例如1000,使用这种方法从0到1000,例如使用2000个动画,没有滞后。确保它们没问题,没有延迟,并且您定义并忘记了xml的开始。如果要确保这是动画问题,则只需使用以下资源即可:

  

https://github.com/daimajia/AndroidViewAnimations

默认情况下,它具有您所有的动画,只需选择其中几个并进行测试即可。