ツールバー(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が簡単に点滅し、説明できない直前の問題です。私はデバッグを試みましたが、私はその部分のラインを通過している間、私の画面は黒のままです。ですから、ビューがどこに/なぜ表示されるのかを判断することはできません。
多分あなたは私の間違いを見つけるのを助けることができます。
これは私の作業コードです、ありがとう:
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();
ありがとう、それは動作し、私はオープニングポストを更新しました。 ImageViewsがあるGridViewの重心が水平になるため、Goneの提案は最適ではなかったので、アイコンは、次のImageが表示されるたびに位置を移動するためだけに中央から降りて来ました。目に見えないものが良い選択です – Eyntschl
私は助けてくれると喜んで、元の投稿から続行することはあまりありませんでしたが、私の提案は助けてくれてうれしいです。 – Ali