2014-12-05 225 views
0

我在onClick中設置了以下動畫。我試圖在動畫完成後開始我的活動,但它不起作用。動畫完成後開始活動

CODE

final ImageView iv1 = (ImageView) findViewById(R.id.imageView1); 
iv1.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

     Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.animation); 
     iv1.startAnimation(anim); 

     Intent i = new Intent(); 
     i.setClass(MainActivity.this, P2.class); 
     startActivity(i); 
    } 
}); 

問題

如何等待動畫開始我的活動之前完成?

+3

不知道你問這裏 – tyczj 2014-12-05 15:48:28

+0

這是我在一段時間見過的最好的問題。 – zgc7009 2014-12-05 15:51:05

+0

我想你所問的是如何在動畫完成後開始新的活動? – zgc7009 2014-12-05 15:51:38

回答

1

使用動畫聽衆

Animation.AnimationListener listener = new Animation.AnimationListener() { 
    @Override 
    public void onAnimationStart(Animation animation) { 

    } 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     Intent i = new Intent(); 
     i.setClass(MainActivity.this, P2.class); 
     startActivity(i); 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 

    } 
}; 
anim.setAnimationListener(listener); 
iv1.startAnimation(anim); 
+0

應該被接受 – palsch 2015-12-12 20:31:30

+0

雖然這應該被接受,我看到的問題是動畫在其動畫結束時重置。因此,如果您淡化某些內容,則會在活動啓動前看到幾幀內容。如果你在'onAnimationEnd'中簡單地將它設置爲不可見,它就可以工作,但這不是解決問題的好方法。 – DavidG 2017-04-09 10:33:46