2016-05-01 14 views
0

ツールバー(SharedElementsアクティビティ入力アニメーションの一部です)にActivityがあり、そのツールバーの下に、横に3つのImageViewsが横に並んでいます。 XMLの実装では、3つすべてが非表示に設定されています。ImageViewsが表示される前に点滅する

私がしようとしているのは、ツールバーの背後から順番に「ドロップする」ことです。あなたが見ることができるように、私は3 ImageViewsを反復処理し、そのに(ツールバーの背後にある)-300 X-位置から行くために各1用のアニメーションを開始しています

int delay = 500; 
    for (int y = 0; y < 3; y++) { 

     ObjectAnimator oa = ObjectAnimator.ofFloat(imageViews[y], 
       "translationY", -300, 0); 
     oa.setDuration(600); 
     oa.setStartDelay(delay); 
     oa.start(); 
     imageViews[y].setVisibility(View.VISIBLE); 
     delay = delay+100; 
    } 
} 

:私のimplemenationはこれです正常な位置。 このアニメーションはすごくうまくいっています。私はそれが欲しいと思っていますが、問題は、すべてのImageViewsが簡単に点滅し、説明できない直前の問題です。私はデバッグを試みましたが、私はその部分のラインを通過している間、私の画面は黒のままです。ですから、ビューがどこに/なぜ表示されるのかを判断することはできません。

多分あなたは私の間違いを見つけるのを助けることができます。

Here's a gif of the srtange behaviour.


これは私の作業コードです、ありがとう:

ObjectAnimator anim1Pin = ObjectAnimator.ofFloat(img_pinned, "translationY", -300, 0); 
    anim1Pin.setDuration(ANIMATON_DURATION); 
    anim1Pin.setStartDelay(300); 
    anim1Pin.addListener(new Animator.AnimatorListener() { 
     @Override 
     public void onAnimationStart(Animator animation) { 
      img_pinned.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onAnimationEnd(Animator animation) { 

     } 

     @Override 
     public void onAnimationCancel(Animator animation) { 

     } 

     @Override 
     public void onAnimationRepeat(Animator animation) { 

     } 
    }); 

そしてAnimatorSet::3つのすべてのImageViewsについては

AnimatorSet animatorSet = new AnimatorSet(); 
    animatorSet.playTogether(anim1Pin, anim2Alarm, anim3LED); 
    animatorSet.start(); 

答えて

1

まず、可視性の状態をGONEに設定してから、アニメーションを開始した後にvisibleに設定するだけで問題が発生することはほとんどありません。しかし、アニメーションを一緒に再生し、ループで行うのではなく遅延を追加するのに、AnimatorSetも使用します。 AnimatorSetを使用する場合、メソッドはAnimationListenerにあり、適切な時刻に表示されるようにする方法ではなく、VISIBLEに表示されたセットを使用することができます。

+0

ありがとう、それは動作し、私はオープニングポストを更新しました。 ImageViewsがあるGridViewの重心が水平になるため、Goneの提案は最適ではなかったので、アイコンは、次のImageが表示されるたびに位置を移動するためだけに中央から降りて来ました。目に見えないものが良い選択です – Eyntschl

+0

私は助けてくれると喜んで、元の投稿から続行することはあまりありませんでしたが、私の提案は助けてくれてうれしいです。 – Ali

関連する問題