2012-07-12 3 views
15

사진 갤러리 앱을 제작 중입니다. 나는 현재 맨 아래에 텍스트 뷰가있는 이미지 뷰를 가지고있다. 현재는 단지 반투명합니다. 페이드 인하 고 3 초간 기다렸다가 90 % 페이드 아웃합니다. 그것에 초점을 맞추거나 새로운 그림을로드하면주기가 반복됩니다. 나는 십여 페이지를 읽고 몇 가지 시도했지만 성공하지 못했습니다. 나가 얻는 모두는 퇴색하고 즉각 퇴색한다TextView animation - 페이드 인, 기다림, 페이드 아웃

+0

Nothing yet ???? –

답변

3

인스턴트 페이드 아웃을 방지하기 위해 별도의 애니메이션 객체 (알파를 수정하지 않음)를 사용할 수 있으며, 페이드 인 효과의 animationListener를 설정하고 on 애니메이션의 추가 애니메이션 객체를 시작할 수 있습니다. 페이드 인 , 당신은 ... 페이드 아웃 여분의 애니메이션 오브젝트의 애니메이션 끝에, 그것은 도움이됩니다, 아래 링크를 시도 시작 내가 페이드 루프 내 프로젝트에 사용했던 솔루션의

Auto fade-effect for textview

39
protected AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f) ; 
protected AlphaAnimation fadeOut = new AlphaAnimation(1.0f , 0.0f) ; 
txtView.startAnimation(fadeIn); 
txtView.startAnimation(fadeOut); 
fadeIn.setDuration(1200); 
fadeIn.setFillAfter(true); 
fadeOut.setDuration(1200); 
fadeOut.setFillAfter(true); 
fadeOut.setStartOffset(4200+fadeIn.getStartOffset()); 

백색 배경을 위해 완벽하게 작동한다. 그렇지 않으면 AlphaAnimation 클래스를 인스턴스화 할 때 값을 전환해야합니다. 이와 같이 :

AlphaAnimation fadeIn = new AlphaAnimation(1.0f , 0.0f); 
AlphaAnimation fadeOut = new AlphaAnimation(0.0f , 1.0f); 

검은 색 배경과 흰색 텍스트 색상으로 작동합니다.

2

TextViews에서/in/fade-out 애니메이션 :

private void setUpFadeAnimation(final TextView textView) { 
    // Start from 0.1f if you desire 90% fade animation 
    final Animation fadeIn = new AlphaAnimation(0.0f, 1.0f); 
    fadeIn.setDuration(1000); 
    fadeIn.setStartOffset(3000); 
    // End to 0.1f if you desire 90% fade animation 
    final Animation fadeOut = new AlphaAnimation(1.0f, 0.0f); 
    fadeOut.setDuration(1000); 
    fadeOut.setStartOffset(3000); 

    fadeIn.setAnimationListener(new Animation.AnimationListener(){ 
     @Override 
     public void onAnimationEnd(Animation arg0) { 
      // start fadeOut when fadeIn ends (continue) 
      textView.startAnimation(fadeOut); 
     } 

     @Override 
     public void onAnimationRepeat(Animation arg0) { 
     } 

     @Override 
     public void onAnimationStart(Animation arg0) { 
     } 
    }); 

    fadeOut.setAnimationListener(new Animation.AnimationListener(){ 
     @Override 
     public void onAnimationEnd(Animation arg0) { 
      // start fadeIn when fadeOut ends (repeat) 
      textView.startAnimation(fadeIn); 
     } 

     @Override 
     public void onAnimationRepeat(Animation arg0) { 
     } 

     @Override 
     public void onAnimationStart(Animation arg0) { 
     } 
    }); 

    textView.startAnimation(fadeOut); 
} 

희망이 도움이 될 수 있습니다!

관련 문제