Я использую нижнюю часть анимации для каменного изображения. Я хочу, чтобы анимация начиналась с задержки на 2 секунды, и она должна заканчиваться через 1,5 секунды.
Наряду с этим, я хочу показать пылеулавливающее изображение, которое идет от альфа = 0 до альфа = 1 за 2 секунды. Я использовал AnimationUtil.loadAnimation().анимация альфа-замирания работает только один раз, когда снизу вверх анимация другого вида заканчивается в Android
Когда каменная анимация заканчивается, я хочу, чтобы изображение пыли перешло от альфа-1 к альфо-0 за 2 секунды. Я делаю это в методе onAnimationEnd(). Первый раз все идет хорошо. Но 2-й раз, изображение пыли сразу исчезает. Альфа-анимация отсутствует.
Исходный код прилагается:
private void showAnimation(Context context){
final FrameLayout stone = (FrameLayout) (view.findViewById(R.id.Stone));
stone.setVisibility(View.VISIBLE);
final FrameLayout dust = (FrameLayout) (view.findViewById(R.id.img_Dust));
dust.setVisibility(View.VISIBLE);
dust.animate().alpha(1f).setDuration(1500);
final Animation slideUp = AnimationUtils.loadAnimation(context,R.anim.stone_up);
slideUp.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
stone.setVisibility(View.GONE);
dust.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
dust.setVisibility(View.GONE);
}
});
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
stone.setAnimation(slideUp);
}