你们有没有觉得手机自带的壁纸看腻?反正我是看够!最近我就琢磨着,能不能搞个动态壁纸,让手机桌面也“活”起来。今儿个就跟大伙儿分享一下我折腾安卓手机动态壁纸的整个过程。
摸索阶段
我是两眼一抹黑,啥也不懂。就想着,先去应用商店里搜搜看呗。 于是我打开手机上的应用商店,输入“动态壁纸”,出来的APP还真不少!
我随便点开几个排名靠前的,看看介绍,什么“海量资源”、“高清无水印”、“个性定制”…… 吹得天花乱坠的。我挑几个下载下来试试。
试用阶段
第一个APP,界面还挺好看,分类也挺多,什么风景、动漫、美女、游戏…… 应有尽有。我选个风景类的动态壁纸,设置一下,效果还不错,桌面上的云彩真的会飘动!
第二个APP,主打的是“视频壁纸”,说是可以把短视频设置成壁纸。我找个跳舞的小姐姐的视频,设置一下,桌面真的变成跳舞的小姐姐!不过我发现有点费电,手机用一会儿就发烫。
第三个APP,功能比较简单,就是一些基本的动态壁纸,效果也一般般,我就没怎么用。
我还试试在“豌豆荚”上找到的一款软件,介绍说是使用什么游戏引擎,可以让壁纸效果更逼真,同时还能省电,我体验一下,感觉还行。
深入研究
用几个APP之后,我发现这些APP都有一个通病:要么广告太多,要么就是收费项目太多。免费的壁纸效果一般,好看的壁纸都要收费,而且有些APP还偷偷摸摸地在后台运行,耗电又占内存。
于是我就想,能不能自己动手做一个动态壁纸?
我开始在网上搜索“安卓动态壁纸制作教程”,结果搜出来一堆专业术语,什么“Service”、“WallpaperService”、“Canvas”…… 看得我头都大!
- Service: 我理解成这玩意儿就是让壁纸在后台一直跑的东西。
- WallpaperService: 这就是专门用来做动态壁纸的Service。
- Canvas: 这东西可以理解成一块画布,我们要在上面画东西,让壁纸动起来。
虽然看不懂,但我还是硬着头皮看几个教程,大概解制作动态壁纸的基本流程:
- 创建一个Android项目。
- 创建一个继承自WallpaperService的类。
- 重写WallpaperService的onCreateEngine()方法,返回一个自定义的Engine对象。
- 在自定义的Engine类中,重写onCreate()、onSurfaceCreated()、onSurfaceChanged()、onVisibilityChanged()、onTouchEvent()等方法。
- 在onDrawFrame()方法中,使用Canvas绘制壁纸内容。
- 在*文件中注册WallpaperService。
- 将应用安装到手机上,然后在壁纸设置中选择该动态壁纸。
最终实现(失败)
看起来步骤挺多的,但实际上,每一步都把我难得够呛!我跟着教程一步一步操作,结果总是出现各种各样的问题。一会儿是代码报错,一会儿是壁纸显示不出来,一会儿又是手机卡死……
折腾几天,我还是没能做出一个像样的动态壁纸。我不得不承认,自己动手做动态壁纸这事儿,以我目前的技术水平,还是太难!
最终实现(妥协)
自己做不出来,那就只能继续用APP呗。不过这回我学聪明,我找一个相对来说广告少一点,收费项目也少一点的APP,然后花几块钱买个会员,终于用上心仪的动态壁纸。虽然花点钱,但起码不用忍受那些烦人的广告,而且壁纸效果也确实不错,值!
这回折腾安卓动态壁纸的经历,让我深刻体会到“理想很丰满,现实很骨感”这句话的含义。不过我也学到一些东西,起码对安卓动态壁纸的原理有一些解,也算是不虚此行!
