(轉)Android四大組件——Activity跳轉動畫、淡出淡入、滑出滑入、自定義退出進入


文章轉自:http://blog.csdn.net/qq_30379689/article/details/52494270

Activity跳轉動畫、淡入淡出、滑入滑出、自定義退出進入

 

前言:

系統中有兩個定義好的Activity跳轉動畫:fade_in、fade_out、slide_in_left、slide_out_right

其中運用到了插值器的知識點,這里也會簡單的介紹插值器的幾個功能

跳轉動畫用到的是Activity中的overridePendingTransition這個方法進行跳轉


知識點介紹:

overridePendingTransition(int enterAnim,int exitAnim)參數1:進入時的動畫、參數2:退出時的動畫

注:這個方法必須放在startActivity和finish之后才能調用


常見的插值器:

LinearInterpolator:線性插值器,勻速運動;

AccelerateDecelerateInterpolator:加速減速插值器,動畫兩頭慢中間快;

DecelerateInterpolator:減速插值器,動畫越來越慢;


fade_in與fade_out:

public void in(View v) {  
    startActivity(new Intent(this, SecondActivity.class));  
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);  
}  
  
public void out(View v) {  
    finish();  
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);  
} 

 

      

slide_in_left與slide_out_right:

 

    public void in(View v) {  
        startActivity(new Intent(this, SecondActivity.class));  
        overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);  
    }  
      
    public void out(View v) {  
        finish();  
        overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);  
    }  

 

      

聰明的你可能會想到,如果我們兩個合起來,可以不?答案是可以的

public void in(View v) {  
    startActivity(new Intent(this, SecondActivity.class));  
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);  
    overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);  
}  
  
public void out(View v) {  
    finish();  
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);  
    overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);  
} 

 

      

會思考的你可能會想到,可不可以我們自己來做一個我們的自己的動畫呢?答案是可以的

在res文件下創建一個anim的文件夾,專門存放我們的動畫xml文件

anim_in.xml與anim_out.xml:(zAdjustment="top"意思是強制將我們的執行動畫Activity放在最上層)

    <?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_mediumAnimTime" />  
    </set>  

 

    <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_mediumAnimTime" />  
        <alpha android:fromAlpha="1.0" android:toAlpha="0"  
            android:duration="@android:integer/config_mediumAnimTime"/>  
    </set>  
public void in(View v) {  
    startActivity(new Intent(this, SecondActivity.class));  
    overridePendingTransition(R.anim.anim_in,R.anim.anim_out);  
}  
  
public void out(View v) {  
    finish();  
    overridePendingTransition(R.anim.anim_in,R.anim.anim_out);  
}

 

       


免責聲明!

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



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