私は2つのビューを同時にアニメーション化する必要があるプロジェクトに取り組んでいます。クォート/ハーフ・サークルに続く2ビューの無限アニメーション
状態0:この2つのビューは、円のx1 = -Radius, y1 = 0/x2 = Radius, y2 = 0
にあります。
状態1:彼らは円の上部中央に同時に移動し、(振り子のように)衝突する必要があります
状態2:彼らは、円の中央下部に同時に戻って、衝突しなければなりません同様
状態3 ... N:彼らは上部中央に行くべきではバックボトムセンターに行くと再び衝突し、その後衝突...
私はMULTを試してみましたArcAnimatorを含む複数のライブラリがありますが、どれもこれをサポートしていないようです。
それをする方法はありますか? XMLでのみ、またはプログラムでは本当に重要ではありません。
編集:
これは私がこれまで何をやったかである:
private void startAnimation() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics (metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
float scale = metrics.density;
float initLeftX = leftBall.getX();
float initLeftY = leftBall.getY();
float targetLeftX = topHelperView.getX(); // helper view on top of circle.
float targetLeftY = topHelperView.getY();
float initRightX = rightBall.getX();
float initRightY = rightBall.getY();
float targetRightX = topHelperView.getX();
float targetRightY = topHelperView.getY();
AnimatorSet animSet = new AnimatorSet();
ObjectAnimator anim1 = ObjectAnimator.ofFloat (leftBall, "x", initLeftX, targetLeftX);
ObjectAnimator anim2 = ObjectAnimator.ofFloat (leftBall, "y", initLeftY, targetLeftY);
ObjectAnimator anim3 = ObjectAnimator.ofFloat (rightBall, "x", initRightX, targetRightX);
ObjectAnimator anim4 = ObjectAnimator.ofFloat (rightBall, "y", initRightY, targetRightY);
animSet.play (anim1).with (anim2).with (anim3).with (anim4);
animSet.setDuration (5000);
animSet.start();
}
問題はアニメーションが直線的に進行し、外側の円の湾曲した経路に従わないということですが。そして、私は振り子衝突を実装するための概念を考えることはできません。
面白いアイデアを。あなたはどれくらいあなた自身の上にいましたか?または、完全なソリューションで回答を期待していますか? –
@ cricket_007:私の編集をチェックしてください。ありがとう。 –