實現漫天飛雪的動畫效果

Spike發表於2016-08-07

冬天來了, 大雪紛飛, 好冷啊. 在應用裡, 也可以實現漫天飛雪的動畫, 讓我來介紹一下吧.

更多: http://www.wangchenlong.org/

snow-logo

我們的應用也可以有一些冬天的效果, 教大家做一個下雪的動畫效果, 參考.

主要
(1) 隱藏status bar, 全屏顯示圖片.
(2) 繪製多個點, 重繪頁面, 實現移動效果.
(3) 回收點, 避免重複建立.

我喜歡用註釋說話, 請大家多關注程式碼中的註釋.

本文原始碼的GitHub下載地址

歡迎Follow我的GitHub: https://github.com/SpikeKing

 

實現漫天飛雪的動畫效果


雪花類

雪花的屬性包含: 隨機量, 位置, 增量, 大小, 角度, 畫筆.
繪畫的過程中, 使用角度會移動點的位置, 每次速率都不同.
當雪花移出螢幕時, 會重新使用, 在螢幕的頂端重新落下.
演算法參考.

隨機數生成器, 包含區間隨機和上界隨機.


雪花檢視

雪花檢視, DELAY時間重繪, 繪製NUM_SNOWFLAKES個雪花.
初始化在onSizeChanged中進行, 繪製在onDraw中進行.

使用getHandler().postDelayed(runnable, DELAY);重新整理頁面.


全屏佈局

全屏佈局

status bar預設是不會被透明化的, 需要使用CollapsingToolbarLayout,
替換status bar的樣式, 否則會留有一定高度, 即使透明也不會填充.

樣式


參考

可以在冬天的時候, 為應用新增些有趣的東西, 讓程式設計更有趣!

OK, that’s all! Enjoy it!

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

實現漫天飛雪的動畫效果

相關文章