在這篇中有提到 ViewAnimator 的用法,其作用在比較複雜的動畫上,如果只是想達到 Activity 之間簡單的轉場的話可以使用
overridePendingTransition(activity_enter, activity_exit);
這個方法,它是 Activity 的方法,作用在 startActivity() 或 finish() 之後,第1個參數為下1個Activity進入的動畫,第2個參數為上1個Activity離開的動畫,必須注意參數只接受在 xml 中定義好的動畫,如何定義1個簡單的動畫呢,如下
1: <?xml version="1.0" encoding="utf-8"?>
2: <alpha xmlns:android="http://schemas.android.com/apk/res/android"
3: android:fromAlpha="0.0" android:toAlpha="1.0"
4: android:duration="300" />
就是簡單的淡入動畫,裡面定義改變的alpha值,動畫時間,最後在放入方法中即可,以我的Logo流程切換為例如下
1: LogoFlow.this.finish(); // close activity
2: sleeping = true;// stop Thread
3: Intent goAct = new Intent();// new a Intent
4: goAct.setClass(LogoFlow.this, CopyRightFlow.class); // set another activity
5: startActivity(goAct); // start another Activity
6:
7: overridePendingTransition(R.anim.fadeout, R.anim.zoom_exit);//使用過場,第1個參數是下1個場景的進入,第2個參數是本身場景的離開
8:
9: System.exit(0);// stop program
第7行就是使用 overridePendingTransition 方法,動畫還有不少組合可以使用如下
1: <?xml version="1.0" encoding="utf-8"?>
2: <set xmlns:android="http://schemas.android.com/apk/res/android"
3: android:interpolator="@android:anim/decelerate_interpolator"
4: android:zAdjustment="top">
5: <scale android:fromXScale="1.0" android:toXScale=".5"
6: android:fromYScale="1.0" android:toYScale=".5"
7: android:pivotX="50%p" android:pivotY="50%p"
8: android:duration="@android:integer/config_mediumAnimTime" />
9: <alpha android:fromAlpha="1.0" android:toAlpha="0"
10: android:duration="@android:integer/config_mediumAnimTime"/>
11: </set>
這是使用set標籤組合2個不同的動畫(縮小和淡出)
0 意見:
張貼留言