Activity在切換或者是退出的時候可以使用漸入,滑動,縮放等動態效果,使用的就是方法overridePendingTransition,可以直在Activity當中直接呼叫,
第一個引數為Activity進入時的影片,第二引數為Activity離開時的影片效果,此方法在startActivity()或者是finish()后呼叫,在切換或是退出時就會呼叫此影片,
不過有時候overridePendingTransition 這個函式會不起作用,總結下,大概是以下幾個方面的原因:
1、android系統版本2.0以下,這個沒辦法,想其他辦法解決切換影片吧,只有在 2.1 以上版本有效
2、在ActivityGroup等的嵌入式Activity中,這個比較容易解決,用如下方法就可以了:this.getParent().overridePendingTransition 就可以解決,
3、在一個Activity的內部類中,或者匿名類中,這時候只好用handler來解決了,
4、必須在 StartActivity() 或 finish() 之后立即呼叫,
5、手機設定-顯示-影片,要開啟狀態有效
現在要完成A打開B頁面,A頁面保持不動,B頁面從底部滑入顯示,而在B回傳A頁面時,A頁面保持不動, B頁面從頂部向下滑出消失的這個程序,需要兩步:
1、需要配置2個影片XML,一個是啟動影片,一個是結束影片,分別在start()和finish()兩個地方呼叫
2、啟動呼叫影片的時機和關閉呼叫影片的時機,
需要使用到的這幾個引數的意思是:
fromAlpha:開始時透明度
toAlpha: 結束時透明度
duration:影片持續時間
public static void start(Activity activity) {
Intent intent = new Intent(activity, SecondActivity.class);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.activity_anim_scenic_in, R.anim.bottom_silent);
}
public void finish() {
super.finish();
overridePendingTransition(R.anim.bottom_silent, R.anim.activity_anim_scenic_out);
}
需要在anim下添加兩個影片檔案:
1.啟動影片(activity_anim_scenic_in.xml):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="1500"
/>
</set>
2.結束影片(activity_anim_scenic_out.xml):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="25"
android:toYDelta="100%p"
android:duration="1500"
/>
</set>
3.設定過場():
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromYDelta="0"
android:toYDelta="0" />
</set>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/7925.html
標籤:其他
