我正在使用自下而上的动画作为石头图像。我希望动画以2秒的延迟开始,它应该在1.5秒内完成 与此同时,我想要在2秒内显示从alpha = 0到alpha = 1的吹灰图像。我使用了AnimationUtil.loadAnimation()。
当石头动画结束时,我希望尘埃图像在2秒内从alpha 1变为alpha 0。我在onAnimationEnd()方法中这样做。第一次一切顺利。但第二次,尘埃图像立即消失。没有阿尔法动画。
附上源代码:
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);
}
答案 0 :(得分:1)
将下面的行放在onAnimationEnd(动画动画)中。
if(stone.getVisibility() == View.GONE) {
dust.setVisibility(View.GONE);
}
希望,它会奏效。