Android анимация одна за другой - PullRequest
2 голосов
/ 20 апреля 2011

Вот мой сценарий.

Сначала я делаю анимацию, установленную для моего вида (View.startAnimation(animationSet)), где animationSet состоит из Translate + Rotate + Scale одновременно.Работает нормально.на этой анимации установите у меня fillAfter(true).Через некоторое время пользователь нажимает на кнопку, и на клике я должен запустить новую ScaleAnimation в том же виде.Поэтому, если я сделаю что-то вроде:

@Override
public void onClick(View v) {
    ScaleAnimation scaleAnimation = new ScaleAnimation(mOldScaleFactor, mScaleFactor, mOldScaleFactor, mScaleFactor, mPivotX, mPivotY);
    scaleAnimation.setDuration(ANIMATION_DURATION_MILIS);
    scaleAnimation.setStartOffset(ANIMATION_OFFSET_MILIS);
    scaleAnimation.setFillAfter(true);
    v.startAnimation(scaleAnimation);
}

Вся предыдущая анимация (Translate + Rotete + Scale) будет забыта.

Как запустить новую анимацию с того места, где заканчивается старая анимация?

1 Ответ

2 голосов
/ 15 марта 2012

Вы могли бы попытаться реализовать слушателя и, возможно, захватить информацию, когда предыдущая анимация прекратилась, однако я не уверен, что вы сможете запросить анимацию для ее состояния. Другой вариант - убедиться, что анимация переходит в известное состояние. Таким образом, вы можете узнать, как вам нужно запустить следующую анимацию.

public float param1;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    //load text view to add animation
    ImageView image1 = (ImageView) findViewById(R.id.splash_imageView1);
    Animation fade1 = AnimationUtils.loadAnimation(this, R.anim.fade_anim);
    image1.startAnimation(fade1);
    fade1.setAnimationListener(new AnimationListener() {
        public void onAnimationEnd(Animation animation) {
            //interrogate animation here
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...