定義Activity及Dialog的進入退出效果

2021-07-30 08:43:18 字數 917 閱讀 9076

設定dialog首先通過getwindow()方法獲取它的視窗,然後通過getattributes()方法獲得window的windowmanager.layoutparams lp, lp有個公共屬性windowanimations, 只要把要實現的animation的id賦值給它就可以了。問題是這個animation應該怎麼寫呢,研究發現,視窗進入和退出的效果分別是通過@android:windowenteranimation和@android:windowexitanimation兩個item設定的,比如進入時的anim是@anim/dialog_enter, 退出的是@anim/dialog_exit, 則宣告乙個style為:

然後把這個style的id傳給lp.windowanimations就行了。

activity的進入和退出效果可以通過@android:activityopenenteranimation,@android:activityopenexitanimation,@android:activitycloseenteranimation,@android:activitycloseexitanimation這幾個item設定,第乙個表示新的activity建立進入效果,第2個表示activity還沒有finish()下退出效果,第3個表示上乙個activity返回進入效果,第4個表示的是activity finish()之後退出效果...(好似有點亂了)。具體設定參考如下:

然後把mytheme這個style作為activity的theme就行了,還有乙個辦法就是通過acitvity獲取它的window, 然後和設定dialog一樣進行設定,因為歸根到底是設定window的layoutparams裡的windowanimations值。所以activity的進入和退出效果也可以通過@android:windowenteranimation和@android:windowexitanimation這兩個item設定。

Android開發之自定義無背景Dialog的實現

dialog常用於activity或fragment頁面上的彈框檢視的展示控制項。還有一種彈框控制項叫popuwindow。二者最重要的區別 dialog是非執行緒阻塞的,popuwindow是執行緒阻塞的。前者在展示的時候所附屬的activity或fragment仍能進行未完成的動作,而popuw...

Fragment及Activity生命週期對比

主要看兩張圖,和跑 一,fragment的生命周 oncreateview是建立的時候呼叫,onviewcreated是在oncreateview後被觸發的事件,前後關係 就是fragment中的oncreateview和onviewcreated的區別和聯絡。且onstart執行時間位於onvie...

Android 多個Activity 跳轉及傳參

mainactivity 開啟 otheractivity intent intent class startactivity intent mainactivity 給 otheractivity 傳引數 intent intent class 以下二個為otheractivity傳引數 inte...