Android показывает анимацию при открытии приложения и отправку намерения в основной класс по окончании - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу сделать приложение, которое показывает покадровую анимацию при запуске. После завершения анимации я хочу отправить намерение в основной класс (ReminderListActivity). Однако я не могу понять, как определить, когда заканчивается анимация.

Вот соответствующий код: Анимационный класс;

public class LoadActivity extends Activity {

AnimationDrawable animation;
long endTimeMillis;

@Override
public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.load_animation);

       startAnimation();

}

class Starter implements Runnable {
      public void run() {
           animation.start();
       }
   }

   private void startAnimation(){
       animation = new AnimationDrawable();

           animation.addFrame(getResources().getDrawable(R.drawable.dude1), 75);
           //....
           animation.addFrame(getResources().getDrawable(R.drawable.dude10), 75);

       animation.setOneShot(true);

       ImageView imageView = (ImageView) findViewById(R.id.img);

       imageView.setImageDrawable(animation);
       imageView.post(new Starter());

       Intent i = new Intent(LoadActivity.this, ReminderListActivity.class);
       startActivity(i);

   }

}

1 Ответ

1 голос
/ 02 апреля 2012

Нет способа зарегистрировать слушателя, который будет вызван, когда заканчивается анимация одиночного выстрела.В качестве обходного пути, поскольку вы уже знаете продолжительность анимации, вы можете начать действие после известной задержки:

postDelayed(new Runnable() {
    Intent i = new Intent(LoadActivity.this, ReminderListActivity.class);
    startActivity(i);
}, 75 + 75);
...