Android的Activity跳轉動畫各種效果整理

Android的Activity跳轉動畫各種效果整理

大家使用Android的原生UI都知道,Android的Activity跳轉就是很生硬的切換介面。其實Android的Activity跳轉可以設定各種動畫。下面給大家看看效果:
 

實現非常簡單,用overridePendingtransition(int inId, int outId)即可實現。inId是下一介面進入效果的xml檔案的id,outId是當前介面退出效果的xml檔案id。

效果是用xml檔案寫的,首先要在res資料夾下建立anim資料夾,然後把動畫效果xml檔案放到裡面去。
下面是放大進入,縮小退出的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=”0.1″ android:toXScale=”1.0″
android:fromYScale=”0.1″ android:toYScale=”1.0″
android:pivotX=”50%p” android:pivotY=”50%p”
android:duration=”300″ />
<!– 這裡為了看到動畫演示效果,把動畫持續時間設為3秒 –>
<alpha
android:fromAlpha=”0.1″
android:toAlpha=”1.0″
android:duration=”300″ />
</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=”300″ />
<!– 系統內建的動畫持續時間
android:duration=”@android:integer/config_mediumAnimTime”
–>
<alpha android:fromAlpha=”1.0″ android:toAlpha=”0″
android:duration=”300″/>
</set>

MainActivity.java:
複製程式碼 程式碼如下:
public class MainActivity extends Activity implements OnClickListener {
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn4 = (Button) findViewById(R.id.btn4);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int version = Integer.valueOf(android.os.Build.VERSION.SDK);
switch(v.getId()) {
case R.id.btn1:
//放大縮小跳轉
startActivity(new Intent(this, OtherActivity.class));
if(version > 5 ){
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
}
break;
case R.id.btn2:
//淡入淡出跳轉
startActivity(new Intent(this, OtherActivity.class));
if(version > 5 ){
overridePendingTransition(R.anim.alphain, R.anim.alphaout);
}
break;
case R.id.btn3:
//左向右跳轉
startActivity(new Intent(this, OtherActivity.class));
if(version > 5 ){
overridePendingTransition(R.anim.move_in_right, R.anim.move_out_right);
}
break;
case R.id.btn4:
//右向左跳轉
startActivity(new Intent(this, OtherActivity.class));
if(version > 5 ){
overridePendingTransition(R.anim.move_in_left, R.anim.move_out_left);
}
break;
}
finish();
}
}

還有很多動畫效果,就要靠我們發揮自己的想象力,自己去設計,呵呵~

您可能感興趣的文章:

Android程式設計實現橫豎屏切換時不銷燬當前activity和鎖定螢幕的方法Android App中實現向右滑動銷燬功能的要點解析android的activity跳轉到另一個activityandroid PopupWindow 和 Activity彈出視窗實現方式Android基礎之Fragment與Activity互動詳解Android Activity之間傳遞圖片(Bitmap)的方法Android筆記之:App應用之啟動介面SplashActivity的使用Activity透明/半透明效果的設定transparent(兩種實現方法)android獲取當前執行Activity名字的方法Android Activity切換(跳轉)時出現黑屏的解決方法 分享Android實現Activity介面切換新增動畫特效的方法詳解Android.activity銷燬流程的工作原理