#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);