2010-08-02 46 views
19

Tôi đang sử dụng phương thức overridePendingTransition để thực hiện hoạt ảnh tùy chỉnh Hoạt ảnh.Đặt trình xử lý hoạt ảnh thành Hoạt ảnh động

Tôi muốn biết thời điểm hoạt ảnh kết thúc (gọi lại/nghe).

Có cách nào trực tiếp để đạt được điều này hay không, nếu không, vui lòng đề xuất cho tôi một số công việc xung quanh.

Trả lời

8

overridePendingTransition không có người nghe. Giống như tôi đã viết một bài trước đó bạn muốn sử dụng một hình ảnh động bình thường thay vì cho overridePendingTransition (chỉ dành cho Android 2.0 trở lên).

Bạn có thể nhận được hiệu ứng tương tự và bạn cũng có thể làm những thứ thú vị hơn với hoạt ảnh thông thường. Bài đăng trước đó của tôi ở đây: Load XML slowly

13

Tôi sử dụng phương pháp này để bắt đầu mọi hoạt ảnh (resID của XML hoạt ảnh). Nếu nextPuzzleOnEnd là đúng, phương thức "nextPuzzle" được gọi khi hoạt ảnh kết thúc.

Phương pháp này là một phần của ứng dụng trò chơi của tôi và tôi sử dụng nó để hiển thị mọi hoạt ảnh thành công và sau đó (sau khi hoạt ảnh đã kết thúc) tiếp tục với câu đố tiếp theo.

/* 
* start animation (any view) 
*/ 
private void startAnimation(View v, int resId, Boolean nextPuzzleOnEnd){ 
    Animation anim; 

    if(v!=null){ // can be null, after change of orientation 
      anim = AnimationUtils.loadAnimation(this.getContext(),resId); 
      anim.setFillAfter(false); 
      v.setAnimation(anim); 
      if(nextPuzzleOnEnd){ 
       anim.setAnimationListener(new AnimationListener() { 
        public void onAnimationStart(Animation anim) 
        { 
        }; 
        public void onAnimationRepeat(Animation anim) 
        { 
        }; 
        public void onAnimationEnd(Animation anim) 
        { 
         nextPuzzle(); 
        }; 
       });      
      } 
      v.startAnimation(anim);     
    } 
    } 
3

Sau khi duyệt Google không thành công cho câu hỏi này, tôi đã tìm giải pháp bằng cách thực hiện tất cả các phương pháp ghi đè.

Vì vậy, những gì tôi đã làm, đã được trọng thông điệp này trong hoạt động, những gì đã đi vào màn hình:

@Override 
public void onEnterAnimationComplete() { 
     super.onEnterAnimationComplete(); 
} 
Các vấn đề liên quan