Управление продолжительностью анимации в Android studio

#java #android #android-studio #animation #android-animation

#java #Android #android-studio #Анимация #android-анимация

Вопрос:

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

это мой XML-список анимации:

 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/combi_animation" android:oneshot="false">
    <item android:drawable="@drawable/combi_logo" android:duration="600" />
    <item android:drawable="@drawable/combi_mouth_closed" android:duration="600" />
</animation-list>
 

и мой код анимации:

 protected void onStart() {
    super.onStart();
    AnimationDrawable rocketAnimation;
    ImageView rocketImage = (ImageView) findViewById(R.id.combi_icon);
    rocketImage.setBackgroundResource(R.drawable.combi_animation);
    rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
    rocketAnimation.start();
}
 

Я подумал, что, возможно, может быть слушатель, который остановит анимацию через определенное мной время
. Я имею в виду, что через 10 секунд анимация остановится.
Но я не смог найти правильный способ сделать это. Как это можно сделать?

Комментарии:

1. можете ли вы просто использовать clearAnimation() в любом представлении, которое вы применили, после вашего конкретного таймера?

2. таймер — это именно моя проблема — я не мог понять, как выполнить ожидание, прежде чем я закончил анимацию в представлении

Ответ №1:

вы можете сделать это :

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                rocketAnimation.stop();
            }
        },10*1000);