2012-07-12 45 views
15

Tôi đang tạo một ứng dụng thư viện ảnh. Tôi hiện có một lần xem hình ảnh với chế độ xem văn bản ở dưới cùng. Hiện tại nó chỉ là nửa công khai. Tôi muốn làm cho nó mờ đi, chờ 3 giây, sau đó giảm dần 90%. Tập trung vào nó hoặc tải một pic mới sẽ làm cho nó lặp lại chu trình. Tôi đã đọc qua một tá trang và đã thử một vài điều, không thành công. Tất cả những gì tôi nhận được là mờ dần và mờ dần raHoạt ảnh TextView - mờ dần, chờ, mờ dần

+0

Chưa có gì ???? –

Trả lời

3

Bạn có thể sử dụng đối tượng hoạt ảnh bổ sung (không sửa đổi alpha của nó) để ngăn phai mờ dần, đặt animationListener cho hiệu ứng mờ dần của bạn và bắt đầu đối tượng hoạt ảnh bổ sung trong hình ảnh độngEnd của fade-in , sau đó bạn khởi động fade-out trên hình ảnh động cuối của đối tượng hoạt hình thêm, hãy thử các liên kết dưới đây, nó sẽ giúp ..

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()); 

Hoạt động hoàn hảo cho nền màu trắng. Nếu không, bạn cần chuyển đổi các giá trị khi bạn khởi tạo lớp AlphaAnimation. Như thế này:

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

Điều này làm việc với nền màu đen và màu văn bản trắng.

2

đó là giải pháp mà tôi đã sử dụng trong dự án của tôi cho Looping phai hoạt ảnh -in/fade-out trên TextViews:

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); 
} 

Hy vọng điều này có thể hữu ích!

Các vấn đề liên quan