歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android基礎篇之自定義Activity間的切換動畫

Android基礎篇之自定義Activity間的切換動畫

日期:2017/3/1 10:50:23   编辑:Linux編程
Android中默認的2個Activity間的切換是左右形式的,你是否已經看的厭煩,或者覺得他不夠個性,Android中提供了一種方法,可以自定義這個動畫效果;

先看下效果圖

產生動畫效果主要是這行代碼 overridePendingTransition(R.anim.scale, R.anim.alpha);

看代碼部分 :

1. 自定義2個Activity 和 2 動畫效果

淡入淡出效果 R.anim.alpha

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_interpolator">
  4. <alpha
  5. android:id="@+id/alpha"
  6. android:fromAlpha="1.0"
  7. android:toAlpha="0.0"
  8. android:duration="2000"/>
  9. </set>

放大縮小效果 R.anim.scale

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_interpolator">
  4. <scale
  5. android:startOffset="2000"
  6. android:duration="2000"
  7. android:fromXScale="0.0"
  8. android:toXScale="1.0"
  9. android:fromYScale="0.0"
  10. android:toYScale="1.0"
  11. android:pivotX="50%"
  12. android:pivotY="50%"
  13. />
  14. </set>


2.主要代碼 MainActivity.java

  1. package com.yin.change;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. public class MainActivity extends Activity {
  9. private Button mButton;
  10. public void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.main);
  13. mButton = (Button) findViewById(R.id.mButton);
  14. mButton.setOnClickListener(new OnClickListener() {
  15. public void onClick(View v) {
  16. Intent intent = new Intent();
  17. intent.setClass(MainActivity.this, Second.class);
  18. startActivity(intent);
  19. //添加必須在StartActivity啟動之後
  20. //第一個參數為 : 第二個Activity啟動時的效果
  21. //第二個參數為 : 第一個Activity退出時的效果
  22. overridePendingTransition(R.anim.scale, R.anim.alpha);
  23. }
  24. });
  25. }
  26. }
Copyright © Linux教程網 All Rights Reserved