Анимация перезапускается, хотя ещё не закончилась
У меня есть активность, в ней есть кнопка. При её нажатии создаётся ImageView, добавляется в layout и к картинке применяется анимация. Проблема собственно в том, что при нажатии кнопки несколько раз анимация перезапускается на всех ImageView не закончившись
Вот код активности:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v) {
ImageView img = new ImageView(this);
RelativeLayout layout = findViewById(R.id.layout);
Random rnd = new Random();
int x = rnd.nextInt(600);
int y = rnd.nextInt(600);
layout.addView(img, 50, 50);
img.setX(x);
img.setY(y);
img.startAnimation(AnimationUtils.loadAnimation(this, R.anim.alpha_anim));
}
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Я бы предложил воспользоваться ValueAnimator:
ValueAnimator animator = ValueAnimator.ofInt(0, 100);
animator.setDuration(2000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int value = (int) animation.getAnimatedValue();
}
});
animator.start();
в слушателе переменная value будет расти от 0 до 100, и когда она будет равна 100, то вы сможете включить кнопку снова. Так же стоит добавить animator:
<animator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:valueFrom="20"
android:valueTo="80"
android:startOffset="100"
android:repeatCount="4"
android:repeatMode= "restart"
android:valueType="intType"></animator>
Вот тут есть интересный туториал по анимированию.