ページ切り替え時のoverridePendingTransition()によるアニメーション効果

2410 ワード

簡単です.startActivityの後、overridePendingTransitionメソッドを呼び出します.たとえば、フェードアウトの効果は次のようになります.
[java]  view plain copy
Intent i = new Intent(StartActivity.this,MainTab.class);  
StartActivity.this.startActivity(i);  
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);  
 
左から右にスライドする効果でパラメータを変更すれば、
[java]  view plain copy
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);  
 
以上androidを直接使用する.R.animが予め定義したanimationは、なぜzoominとzoomoutがないのか不思議です(私が見つけられなかったのかもしれませんが、高い人に教えてもらいたいです)
zoominとzoomout、すなわちiphoneのようなアクセスと終了の効果を実現するには、コードは以下の通りです.
[java] view plain copy
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);  
このコードを追加すると、zoominとzoomoutの定義がないため、eclipseがエラーを報告します.
このときresディレクトリの下にフォルダanimを新規作成し、animの下に2つのxmlを新規作成します.デフォルトのオプションは変更する必要はありません.それぞれzoominと名付けられます.xmlとzoomout.xml,
コードは次のとおりです.
zoomin.xml: 
<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
  <scale
      android:fromXScale="2.0"
      android:toXScale="1.0" 
      android:fromYScale="2.0"
      android:toYScale="1.0"
      android:pivotX="50%p"
      android:pivotY="50%p"
      android:duration="@android:integer/config_longAnimTime">
  </scale>
      
</set>

zoomout.xml:
<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:zAdjustment="top">
  <scale
      android:fromXScale="1.0"
      android:toXScale=".5" 
      android:fromYScale="1.0"
      android:toYScale=".5"
      android:pivotX="50%p"
      android:pivotY="50%p"
      android:duration="@android:integer/config_shortAnimTime">
  </scale>
      
   <alpha
       android:fromAlpha="1.0"
       android:toAlpha="0"
       android:duration="@android:integer/config_longAnimTime">
       
   </alpha>
    
</set>