2013-08-14 32 views
6

Tôi không biết loại hoạt ảnh được gọi là gì, nhưng tôi muốn triển khai như sau. Tôi thấy rằng hình ảnh động trong iOS.Hoạt ảnh văn bản từ trái sang phải như tỏa sáng trong Android

enter image description here

Như bạn có thể thấy rằng, câu trượt để hủy bỏ sẽ animate từ trái sang phải như có một ánh sáng đằng sau nó.

Tôi không biết phải sử dụng cái gì. Tôi đã thử một số hoạt hình như Alpha, nhưng không thể đạt được điều đó. Ai giúp tôi với?

+0

Hãy thử liên kết này: http://android-er.blogspot.in/2012/01/create-frame-animation-with.html –

+0

@ViragBrahme, không nó những gì tôi đang tìm kiếm .. :( –

+0

Đã không nhận ra rằng đây là cho Android, vì vậy tôi thiết lập một hình ảnh động CSS ... Tôi không làm bất kỳ android, nhưng tôi muốn giả định rằng sẽ không làm việc cho bạn ... Đây là bản demo anyway: http : //cdpn.io/BpgyE – brbcoding

Trả lời

0

Bạn có 2 cách:

1) làm việc với openGL và sử dụng Shaders để thực hiện hiệu ứng này.

2) tạo một lớp phía trên văn bản chứa gradient [trong suốt] [trắng] [trong suốt] và tạo ảnh động cho anh ấy.

+0

um ... cố gắng..đóng gói bạn sau. –

4

Got giải pháp bằng cách sử dụng Spannable

Tiếp theo là lớp Thread mà liên tục chạy với khoảng thời gian 100 ms.

class MyThread extends Thread { 
    //used for stopping thread 
    boolean flag; 

    //init flag to true so that method run continuously 
    public MyThread() { 
     flag = true; 
    } 

    //set flag false, if want to stop this thread 
    public void setFlag(boolean flag) { 
     this.flag = flag; 
    } 

    @Override 
    public void run() { 
     super.run(); 
     while (flag) { 
      try { 
       Thread.sleep(intervalMiliSeconds); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 

         Spannable spn = new SpannableString(txtView 
           .getText().toString()); 
         spn.setSpan(new ForegroundColorSpan(Color.WHITE), 
           startPosition, endPosition, 
           Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
         txtView.setText(spn); 

         startPosition++; 
         endPosition++; 
         endPosition %= (lengthOfString + charGaps); 
         startPosition %= lengthOfString; 

         if (startPosition == 0) { 
          endPosition = charGaps; 
          startPosition = 0; 
         } 

         if (endPosition > lengthOfString) { 
          endPosition = lengthOfString; 
         } 

         Log.d("Home", "Start : " + startPosition + " End : " + endPosition); 

        } 
       }); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

Để sử dụng mã trên, hãy sử dụng triển khai sau.

TextView txtView = (TextView) findViewById(R.id.txtView); 

int charGaps = 3; 

int startPosition = 0; 
int endPosition = charGaps; 

int lengthOfString = txtView.getText().length(); 

MyThread thread = new MyThread(); 

thread.start(); 

Output

enter image description here

Tuy nhiên câu trả lời tốt hơn sẽ được đánh giá cao hơn .. :)

+0

Công trình này tuyệt vời! Nhưng làm thế nào để tăng tốc độ của người bạn đời này! –

1

Tôi nghĩ rằng bạn đang nói về Shimmer Hiệu lực thi hành. Facebook làm thư viện cho điều đó. Nó sẽ giúp bạn hiển thị hiệu ứng ánh sáng từ trái sang phải với nhiều tùy chọn hơn.

Bạn có thể xem tài liệu đầy đủ ở đó. Shimmer Library

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