冬天来了, 大雪纷飞, 好冷啊. 在应用里, 也可以实现漫天飞雪的动画, 让我来介绍一下吧.
我们的应用也可以有一些冬天的效果, 教大家做一个下雪的动画效果, 参考.
主要
(1) 隐藏status bar
, 全屏显示图片.
(2) 绘制多个点, 重绘页面, 实现移动效果.
(3) 回收点, 避免重复创建.
我喜欢用注释说话, 请大家多关注代码中的注释.
本文源码的GitHub下载地址
欢迎Follow我的GitHub: https://github.com/SpikeKing
雪花类
雪花的属性包含: 随机量, 位置, 增量, 大小, 角度, 画笔.
绘画的过程中, 使用角度会移动点的位置, 每次速率都不同.
当雪花移出屏幕时, 会重新使用, 在屏幕的顶端重新落下.
算法参考.
1 | /** |
随机数生成器, 包含区间随机和上界随机.
1 | /** |
雪花视图
雪花视图, DELAY时间重绘, 绘制NUM_SNOWFLAKES个雪花.
初始化在onSizeChanged中进行, 绘制在onDraw中进行.
1 | /** |
使用
getHandler().postDelayed(runnable, DELAY);
刷新页面.
全屏布局
全屏布局
1 | <?xml version="1.0" encoding="utf-8"?> |
status bar
默认是不会被透明化的, 需要使用CollapsingToolbarLayout
,
替换status bar的样式, 否则会留有一定高度, 即使透明也不会填充.
样式
1 | <?xml version="1.0" encoding="utf-8"?> |
可以在冬天的时候, 为应用添加些有趣的东西, 让编程更有趣!
OK, that’s all! Enjoy it!
原始地址:
http://www.wangchenlong.org/2016/03/22/1603/222-snowflake-anim/
欢迎Follow我的GitHub, 关注我的简书, 微博, CSDN, 掘金, Slides.
我已委托“维权骑士”为我的文章进行维权行动. 未经授权, 禁止转载, 授权或合作请留言.