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

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

 


前言:android

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

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

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

 

知識點介紹:xml

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

注:這個方法必須放在startActivity和finish以後才能調用utf-8

 

常見的插值器:it

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

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);
}
       

  

 

相關文章
相關標籤/搜索