Android_动态壁纸介绍
Android的动态壁纸主要用到三个类:
android.app.WallpaperManager:这个类主要用于获取系统壁纸的信息。再写动态壁纸的时候用不到。
android.service.wallpaper.WallpaperService:这个类作为服务在运行,同时负责产生一个Engine。
同时,在此类中有一个必须继承的方法为:nCreateEngine。WallpaperService的onCreateEngine这个方法比较特殊,虚拟机没有在WallpaperService里的onCreate方法里调用,更不用你自己在其它Activity里用startService或者bindService来启动它是在程序运行之后,由你在桌面上点击menu->Wallpaper->Live Wallpapers->确定->你的项目名称。这个时候虚拟机调用就会onCreateEngine方法。
还有就是这个Service是什么时候启动的呢?看Manifest.xml文件就可以看出,在组件<service>里有一个<action android:name="android.service.wallpaper.WallpaperService" />这表明当你设置动态壁纸时这个Service才启动。
android.service.wallpaper.WallpaperService.Engine:这个类是WallpaperService的内部类,负责动态壁纸的各个方面。
介绍这个类里的几个函数
onOffsetsChanged():
这个一般在几个屏幕滑动的时候调用 而且 当你拖动A屏幕向B屏幕过度时 会随着B屏幕的显示面积的变大或者变小一直调用这个方法
onVisibilityChanged()
这个是屏幕显示或者不显示的时候调用的 必须完全覆盖屏幕才会调用
onCommand()
可以给壁纸发送一些命令 让其执行
onTouchEvent()
处理壁纸的点击时间的
setTouchEventsEnabled(true)
作用是使壁纸能响应touch event,默认是false
Engine的生命周期与大多数Android应用程序组件,比如activity类似,都是从onCreate()开始,在销毁时调用onDestory()方法。不同的是WallpaperService会提供一个surface用来绘制壁纸,所以在生命周期中多一个onSurfaceCreated与onSurfaceDestroyed的过程。下面是一个最简生命周期:
这是AndroidManifest.xml文件中的一个配置信息,这个地方很重要。
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><serviceandroid:label="@string/app_name"android:name=".TimeWall"android:permission="android.permission.BIND_WALLPAPER" ><intent-filter ><action android:name="android.service.wallpaper.WallpaperService" /></intent-filter><meta-dataandroid:name="android.service.wallpaper"android:resource="@xml/alive_wall" /></service></application>
<service> 定义了一个,将运行在背景上并且对事件有响应的Android服务。android:permission="android.permission.BIND_WALLPAPER" 意思是任何程 序调用我们的服务都需要有一个指定的权限。Android的Home程序已经具备了该权限,所以它会工作得很好。
< intent-filter >这个标签告诉Android它是个什么样的服务。
< meta-data>标签让它知道在哪能找到关于wallpaper的额外信息。android:resource被设为"@xml/wallpaper"(名字任意,但得对应上),这个值最好设置在res/xml/wallpaper.xml 文件
现附上源代码,里面有详细解释供大家参考! (下载地址复制到地址栏里有效,单纯的点击不会跳到链接)
csdn零分下载:http://download.csdn.net/detail/zqiang_55/4604044
大家感觉文章不错,就帮忙顶下应用:http://www.talkphone.cn/Down/Soft/Detail/49172_0.html
转载于:https://www.cnblogs.com/wuyida/archive/2011/12/15/6300653.html
Android_动态壁纸介绍相关推荐
- iphone主屏幕动态壁纸_iPhoneXLivePhoto动态壁纸
iPhoneX最新的LivePhoto动态壁纸大全为大家带来,这款壁纸用扭曲舞动的色彩调和出非常好看的壁纸,可以在iPhoneX上把LivePhoto动态壁纸当做桌面或者锁屏,欢迎来本站下载使用! L ...
- win10动态壁纸怎么设置_想把我的女朋友设置为动态壁纸:看过来,教你啊
动态壁纸,最近已经越来越受用户的欢迎.炫酷的桌面效果非常动人,让人蠢蠢欲动,但有非常多的网友都不会设置win10动态桌面.所以今天小编就把设置win10动态桌面的方法告诉大家,下面就是设置win10动 ...
- 动态壁纸安卓_安卓 高清 动态 壁纸
Hi,各位大佬好!我是此木: 昨天刚过完"2020520",今天女神要我给她换个好看的.高清的.动态的.安卓的手机壁纸,我勒个去,要求还真不高,于是乎此木埋头半小时,终于找到一款符 ...
- iphone主屏幕动态壁纸_iPhone8怎么设置动态壁纸?iPhone8动态壁纸设置教程
iPhone8怎么设置动态壁纸?朋友们平时想把一些拍摄的动态图片设置iPhone8壁纸,该怎么设置呢?估计有 不少朋友还不知道如何设置, 在这里我就来为大家介绍一下iPhone8设置动态壁纸的教程,一 ...
- android 动态壁纸
引用:http://www.ophonesdn.com/article/show/278 http://developer.android.com/resources/samples/CubeLive ...
- 壁纸背景墙/头像/动态壁纸小程序源码-支持用户投稿-带部分采集功能+搭建教程
介绍: 今天自己搭建测试了一下这款背景墙/头像/动态壁纸小程序源码,源码使用dcloud云开发 (云开发优势:无需服务器域名直接搭建部署即可,成本低方便维护.)支持微信QQ双端小程序也就是说可以打包成 ...
- iphone主屏幕动态壁纸_灵动优美的iphone高清动态锁屏壁纸
看惯了千篇一律的静态壁纸,厌烦了自带的动态壁纸,不妨来试试小编给大家精心挑选的几款Live Photos,除了惊艳还是惊艳^_^ 先来几个样张: 大家不要直接将这两张图用作设置为锁屏壁纸,这样就没有原 ...
- android 前后同时预览_用上这些官方动态壁纸,让你的 Android 主屏简洁又优雅
近年来,越来越多的 Android 厂商都选择通过定制动态壁纸的方式,来为自家手机打造独特的使用体验.一些 OEM 厂商甚至能跳出常规框架.赋予其与众不同的视觉效果和交互方式,只是一张动态壁纸,就足以 ...
- iphone主屏幕动态壁纸_iPhone不需长按自动触发动态壁纸教程
背景: 想必近期广大爱刷抖音的朋zha友nan们肯定被上面的动态锁屏壁纸刷屏了吧. 本屌丝也跟风设置了实况壁纸. 结果才发现! 一定要长按屏幕才能动起来? WTF !! 这还有什么乐趣!怎么能显示我的 ...
最新文章
- Redis详解(八)------ 主从复制
- php怎么写获取手机剪切板到搜索栏,如何根据指定的剪切板获取html?
- Guava之RateLimiter的设计
- 弥补关系型数据库的不足,引入分布式存储
- T-SQL笔记6:GO
- Angular应用里setTimeout被如何被monkey patched的
- 工作176:表单重置
- c语言第六次上机作业,C语言第五次上机作业参考答案
- 疑似Redmi K40S工信部入网:主打双十一 最高支持120W快充
- matlab误比特率,[转载]使用Matlab进行误比特率仿真
- 【Linux】Ubuntu 代理配置
- 牛客 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 签到题13题
- java鼠标中键_java-selenium鼠标键盘操作Actions类和Robot
- HDU1325 Is It A Tree?
- 树链剖分解析---WYD
- 微信客户端电话人工服务器,微信客服电话多少 微信客服电话人工服务怎么接通...
- 【磨刀不误砍柴工】由传递函数绘出频率响应图
- 任何进行推理的系统都必须具有一些基本的智能
- PADS9.5—layout中导入.asc文件时遇到的问题
- Elasticsearch 使用初级入门 【入门篇】