2016-07-20 1 views
1

돌 이미지의 맨 아래 애니메이션을 사용하고 있습니다. 나는 2 초의 지연으로 애니메이션을 시작하고 1.5 초 안에 끝내야한다.
이와 함께 2 초 동안 알파 = 0에서 알파 = 1로가는 먼지가 날리는 이미지를 보여주고 싶습니다. AnimationUtil.loadAnimation()을 사용했습니다.알파 페이딩 애니메이션은 Android에서 다른보기의 아래쪽 위로 애니메이션이 완료 될 때 한 번만 작동합니다.

석기 애니메이션이 끝나면 먼지 이미지가 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

은 그냥 onAnimationEnd (애니메이션 애니메이션)에서 선 아래에 넣어.

if(stone.getVisibility() == View.GONE) { 
    dust.setVisibility(View.GONE); 
} 

희망, 작동합니다.

관련 문제