Android輕鬆搞定Dialog提示動畫效果

Songlcy發表於2016-09-11

抽箇中午的時間寫一篇部落格,想必大家現在正在午飯呢吧,深圳的天氣真是變換無常,剛剛大雨傾盆,不一會就晴天高照。打球嗎?約起來哇,哈哈。。

今天給大家帶來一篇Dialog提示附加動畫效果的功能。這種Dialog提示效果基本變成了每個App都必不可少功能。例如,退出提示,彈出分享框,App升級提示等等。。

其實在Android中實現提示功能由很多種方式:自定義Dialog,AlertDialog,自定義ViewGroup,DialogFragment等等。

Google在新版本中不推薦使用Dialog了(Dialog的坑不少,例如搶奪焦點,必須自己處理返回事件等等),本篇內容實現的功能基於Android3.0之後推出的DialogFragment。

關於DialogFragment的使用在這裡就不做多的介紹了,入門的文章大家可以看hongyang的:

Android 官方推薦 : DialogFragment 建立對話方塊

首先,看下我們今天要實現的效果:



想必大家肯定見過這種類似的效果吧。哈哈,怎麼樣?是不是比普通的Dialog顯示要nice狠多。下面我們就來一步步實現。

既然使用DialogFragment,那麼我們就需要自定義先DialogFragment,並繼承自DialogFragment,實現onCreateView方法或者onCreateDialog。這裡我們實現的是onCreateView方法。下面來看核心的程式碼:

DialogFragment和Fragment有相同的生命週期:

(1)在onStart方法中我們首先去宣告要載入的動畫檔案,並設定到window的windowAnimations屬性上。

(2)在onCreateView方法中,去掉了預設的提示框背景色(設定為透明),並去掉預設的標題,然後載入我們自己的佈局檔案。

接著我們來看動畫Style:

很簡單,就是定義了顯示和退出的動畫。

到此為止,關於動畫的設定就完成了。接著我們就可以顯示DiaFragment了:


到此,我們就輕鬆實現了上面的效果啦。關於定義的動畫anim,大家可以下載原始碼進行檢視,這裡就不多說了。

:有朋友說在提示Dialog顯示的時候,如何去掉預設的暗黑色背景。其實很簡單,在上面的onStart方法中,使用如下方式:

layoutParams.dimAmount = 0.0f;

好了,今天的內容就到這裡啦,有問題的朋友留言,打球去啦!

原始碼下載

相關文章