2012-10-27 2 views
2

Android에 상당히 익숙합니다. 애니메이션 끝에서 새로운 활동을 시작하는 방법에 대한 스레드를 찾을 수 없습니다.애니메이션을 종료 한 후 새 활동을 시작하는 방법은 무엇입니까?

여기 내 코드입니다 :

public class Intro extends Activity { 

    AnimationDrawable anim = new AnimationDrawable(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.intro); 
     ImageView iv =(ImageView) findViewById(R.id.imageView1);   
     iv.setBackgroundResource(R.anim.animation);  
     anim = (AnimationDrawable) iv.getBackground(); 

     iv.post(new Runnable(){  
      public void run(){  
       anim.start();   
     } 

     }); 

    } 

} 

답변

2

지금까지 내가 AnimationDrawable가 반복을 완료 할 때 결정하는 콜백 메커니즘이없는 알고. 당신이 할 수있는 것은 프레임의 수와 각 프레임의 지연을 질의하는 것입니다. 그 기간을 합산하여 지연된 게시물을 작성하십시오. 그 콜백에서 두 번째 활동을 시작할 수 있습니다.

그리고 애니메이션을 시작하는 것은 약간 위험합니다. docs 말 :

그것은 애니메이션 드로어 블 AnimationDrawable가 아직 완전히 윈도우에 연결되어 있지 않기 때문에 애니메이션 드로어 블 AnimationDrawable에서 호출 시작() 메소드는, 액티비티의에서 onCreate() 메소드 중에 호출 할 수 없음을 유의하는 것이 중요합니다. 상호 작용을 필요로하지 않고 즉시 애니메이션을 재생하려는 경우 Activity에서 onWindowFocusChanged() 메소드를 호출하여 Android에서 윈도우를 포커스에 맞출 때 호출됩니다.

+0

quike 및 fournish 답변 주셔서 감사합니다. 나는 잠을 자고, 내가 결국 tomorow와 함께 보내 줄게. .. 다시 한번 고마워! –

관련 문제