兩個activity界面間跳轉切換動畫效果

1overridePendingTransition

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

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

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

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

2 官方給我們提供的動畫效果

實現淡入淡出的效果

overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);    

由左向右滑入的效果

overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);

3overridePendingTransition 不起作用原因

 1、android系統版本2.0以下,這個沒辦法,想其他辦法解決切換動畫吧。

 2、在ActivityGroup等的嵌入式Activity中,這個比較容易解決,用如下方法就可以了:
    this.getParent().overridePendingTransition 就可以解決。

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

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

4 自定義動畫

原理介紹:點擊打開鏈接
步驟一:首先在res/anim 下  聲明兩個動畫效果  
fade.xml
    <?xml version="1.0" encoding="utf-8"?>  
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"  
           android:interpolator="@android:anim/accelerate_interpolator"  
           android:fromAlpha="0.0" android:toAlpha="1.0"  
           android:duration="@android:integer/config_longAnimTime" />  
hold.xml
<?xml version="1.0" encoding="utf-8"?>  
<translate xmlns:android="http://schemas.android.com/apk/res/android"  
       android:interpolator="@android:anim/accelerate_interpolator"  
       android:fromXDelta="0" android:toXDelta="0"  
       android:duration="@android:integer/config_longAnimTime" /> 
步驟二:在activity跳轉的時候加上overridePendingTransition方法
    refresh=(TextView) this.findViewById(R.id.refresh);  
           refresh.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                Intent intent=new Intent(PathButtonActivity.this,MainActivity.class);  
                startActivity(intent);  
                //第一個參數爲啓動時動畫效果,第二個參數爲退出時動畫效果  
                overridePendingTransition(R.anim.fade, R.anim.hold);  
            }  
        });  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章