設置Activity顯示和關閉時的動畫效果


設置Activity顯示和關閉時的動畫效果

  通過overridePendingTransition方法可以設置Activity顯示和關閉的動畫效果。首先需要在res/anim目錄中建立相應的動畫資源文件,然后使用下面的代碼在顯示和關閉Activity時添加動畫效果。

1 Intent intent=new Intent(this,AnimationActivity.class);
2 startActivity(intent);
3 //通過淡入淡出的效果關閉和顯示Activity
4 overridePendingTransition(R.anim.fade_in,R.anim.fade_out);   

overridePendingTransition簡介 

1 Activity的切換動畫指的是從一個activity跳轉到另外一個activity時的動畫。

它包括兩個部分:
一部分是第一個activity退出時的動畫;
另外一部分時第二個activity進入時的動畫;
在Android的2.0版本之后,有了一個函數來幫我們實現這個動畫。這個函數就是overridePendingTransition

  這個函數有兩個參數,一個參數是第一個activity進入時的動畫,另外一個參數則是第二個activity退出時的動畫。

  //實現淡入淺出的效果
  startActivity(new Intent(MainActivity.this,SecondActivity.class));
  overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);

 

  // 由左向右滑入的效果
  startActivity(new Intent(MainActivity.this,SecondActivity.class));
  overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);

 

  // 實現zoommin 和 zoomout (自定義的動畫)
  startActivity(new Intent(OverridePendingTransitionActivity.this,SecondActivity.class));
  overridePendingTransition(R.anim.zoomin, R.anim.zoomout);

 

  關於overridePendingTransition這個函數,有兩點需要主意
     1.它必需緊挨着startActivity()或者finish()函數之后調用"
     2.它只在android2.0以及以上版本上適用 

   http://www.oschina.net/question/97118_34343

 過有時候overridePendingTransition 這個函數會不起作用,總結下,大概是以下三個方面的原因:

 

 1、在ActivityGroup等的嵌入式Activity中,這個比較容易解決,用如下方法就可以了:

 

    this.getParent().overridePendingTransition 就可以解決。

 

 2、在一個Activity的內部類中,或者匿名類中,這時候只好用handler來解決了。

 

 3、手機的顯示動畫效果被人為或者其他方式給關閉了 現在打開即可 設置->顯示->顯示動畫效果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM