17

でアニメーションを作成してAnimatorSetいますが、終了したら元の場所に残したいと思いViewます。

コードは次のようなものです。

mLastAnimation = new AnimatorSet();
mLastAnimation.playTogether(
  ObjectAnimator.ofFloat(mImageView, "scaleX", 1.5f, 1f),
  ObjectAnimator.ofFloat(mImageView, "translationY", 40f, 0f));
mLastAnimation.setDuration(3000);
mLastAnimation.addListener(this);
mLastAnimation.start();

// The Activity implements the AnimatorListener interface
  @Override
  public void onAnimationEnd(Animator animator) {
    // Undo the animation changes to the view.
  }

編集:

新しいアニメーション API を使用しているため、setFillAfter()ここでは機能しません。

4

4 に答える 4

6

nineoldandroids を使用している場合は、 という関数がありますreverse。期間を 0 に設定し、呼び出しreverseてアニメーションを逆にすることができます。

于 2013-12-11T07:38:00.097 に答える
5

View背面のプロパティを元の値に設定する必要があります。

たとえば、前方に Y 40 ピクセル移動する場合、後方に Y 40 ピクセル移動する必要があります。これは、レンダリング方法だけでなく、プロパティ アニメーション中に の実際のプロパティView変更されたためです。

http://developer.android.com/guide/topics/graphics/prop-animation.html#property-vs-view

于 2012-07-26T13:53:09.613 に答える