Android輕鬆搞定Dialog提示動畫效果
抽箇中午的時間寫一篇部落格,想必大家現在正在午飯呢吧,深圳的天氣真是變換無常,剛剛大雨傾盆,不一會就晴天高照。打球嗎?約起來哇,哈哈。。
今天給大家帶來一篇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;
好了,今天的內容就到這裡啦,有問題的朋友留言,打球去啦!
相關文章
- 輕鬆搞定動畫!17個有趣實用的CSS 3懸停效果教程動畫CSS
- 3D 穿梭效果?使用 CSS 輕鬆搞定3DCSS
- 辦公室革命,教你輕鬆搞定輕鬆玩轉ExcelExcel
- 【動畫】看動畫輕鬆理解「Trie樹」動畫
- 看動畫輕鬆理解「 堆 」動畫
- 輕鬆搞定專案流程自動化
- 12步輕鬆搞定python裝飾器Python
- anime.js 網頁動畫庫,輕鬆實現網頁數字滾動效果JS網頁動畫
- 輕鬆搞定專案管理軟體、分配任務專案管理
- 一份配置,輕鬆搞定Vue表單渲染Vue
- 上億條資料,OurwayBI也能輕鬆搞定
- MySQL8.0輕鬆搞定GTID組複製MySql
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 輕鬆搞定實時分析及監控大屏
- 輕鬆搞定面試中的連結串列題目面試
- 輕鬆搞定Windows惡意程式碼攻擊(轉)Windows
- 一文輕鬆搞定 tarjan 演算法(二)演算法
- Android中常用動畫效果Android動畫
- 動畫效果Animation-android動畫Android
- 高逼格Android轉場動畫,輕鬆實現掘金使用者頭像轉場動畫Android動畫
- 【輕鬆一刻】Java製作字元動畫Java字元動畫
- 看動畫輕鬆學會 Raft 演算法動畫Raft演算法
- 超酷炫的轉場動畫?CSS 輕鬆拿下!動畫CSS
- 輕鬆搞定分組報表中的各種排序排序
- MySQL8.0輕鬆搞定GTID主從複製MySql
- MySQL8.0輕鬆搞定GTID主主複製MySql
- 輕鬆搞定面試中的二叉樹題目面試二叉樹
- 六大絕招輕鬆搞定系統更新(轉)
- Android動畫效果之Tween Animation(補間動畫)Android動畫
- Android動畫效果之Frame Animation(逐幀動畫)Android動畫
- 看動畫輕鬆理解時間複雜度(二)動畫時間複雜度
- 看動畫輕鬆理解時間複雜度(一)動畫時間複雜度
- WPF中輕鬆操控GIF動畫:WpfAnimatedGif庫詳解動畫
- ImageKnife元件,讓小白也能輕鬆搞定圖片開發元件
- 帶你十天輕鬆搞定 Go 微服務系列(五)Go微服務
- 帶你十天輕鬆搞定 Go 微服務系列(六)Go微服務
- 帶你十天輕鬆搞定 Go 微服務系列(七)Go微服務
- 帶你十天輕鬆搞定 Go 微服務系列(一)Go微服務