Android的动态壁纸主要用到三个类:
android.app.WallpaperManager:这个类主要用于获取系统壁纸的信息。再写动态壁纸的时候用不到。
android.service.wallpaper.WallpaperService:这个类作为服务在运行,同时负责产生一个Engine。
同时,在此类中有一个必须继承的方法为:nCreateEngine。WallpaperService的onCreateEngine这个方法比较特殊,虚拟机没有在WallpaperService里的onCreate方法里调用,更不用你自己在其它Activity里用startService或者bindService来启动它是在程序运行之后,由你在桌面上点击menu->Wallpaper->LiveWallpapers->确定->你的项目名称。这个时候虚拟机调用就会onCreateEngine方法。
还有就是这个Service是什么时候启动的呢?看Manifest.xml文件就可以看出,在组件<service>里有一个<actionandroid:name="android.service.wallpaper.WallpaperService"/>这表明当你设置动态壁纸时这个Service才启动。
android.service.wallpaper.WallpaperService.Engine:这个类是WallpaperService的内部类,负责动态壁纸的各个方面。
介绍这个类里的几个函数
onOffsetsChanged():
这个一般在几个屏幕滑动的时候调用而且当你拖动A屏幕向B屏幕过度时会随着B屏幕的显示面积的变大或者变小一直调用这个方法
onVisibilityChanged()
这个是屏幕显示或者不显示的时候调用的必须完全覆盖屏幕才会调用
onCommand()
可以给壁纸发送一些命令让其执行
onTouchEvent()
处理壁纸的点击时间的
setTouchEventsEnabled(true)
作用是使壁纸能响应touchevent,默认是false
Engine的生命周期与大多数Android应用程序组件,比如activity类似,都是从onCreate()开始,在销毁时调用onDestory()方法。不同的是WallpaperService会提供一个surface用来绘制壁纸,所以在生命周期中多一个onSurfaceCreated与onSurfaceDestroyed的过程。下面是一个最简生命周期:
这是AndroidManifest.xml文件中的一个配置信息,这个地方很重要。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service
android: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-data
android: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
分享到:
相关推荐
本站之前介绍过一个樱花动态壁纸和一个气泡动态壁纸,点击分类里面的壁纸分类就可以看到,但是如果您想学习一下安卓动态壁纸的开发一定不能错过这个项目。本项目完全可以作为动态壁纸开发的指导案例,整个项目只有三...
一个简单的android动态壁纸,介绍壁纸应用的开发框架
android wallpaper包括锁屏壁纸和桌面壁纸,壁纸又区分静态和动态两种。 本文只介绍静态壁纸设置和确认。 确认demo源码和apk文件
本站之前介绍过一个浪漫樱花凋零动态壁纸项目,在网站搜索“樱花”就可以找到。本项目也是一套基于安卓的屏幕气泡动态壁纸项目源码,安装后没有桌面图标,可以在壁纸设置-动态壁纸里面找到。初始状态是有三个气泡会...
主要为大家详细介绍了Android动态时钟壁纸开发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了Android编程之动态壁纸实现方法,以实例形式分析了Android动态壁纸的原理与实现步骤,具有一定参考借鉴价值,需要的朋友可以参考下
主要为大家详细介绍了Android自定义动态壁纸开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
第二部分(第10~15章)详细介绍如何搭建三维世界中的效果,比如光照和地形渲染,以及如何创建可以运行在Android主屏幕上的动态壁纸。此外,附录还提供了正交投影和透视投影两个OpenGL常用投影类型背后的矩阵知识,...
第二部分(第10~15章)详细介绍如何搭建三维世界中的效果,比如光照和地形渲染,以及如何创建可以运行在Android主屏幕上的动态壁纸。此外,附录还提供了正交投影和透视投影两个OpenGL常用投影类型背后的矩阵知识,...
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D...
googlemaps、音频和视频、2d绘图和 3dopengl绘图、surfaceview、动态壁纸、蓝牙通信、触控、感应检测、android2.3特性、照相机、voip等内容。 《android 2.3应用开发实战》面向 android初学者、想系统掌握 android...
《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、可视...
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D...
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D...
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D...
Android源码之动态壁纸引擎 动态桌面实现 android控件的抖动效果 很漂亮的ListView android 图像处理滤镜 照亮边缘特效 无闪烁启动画面 Android实现《天女散花》效果--(带源码) 天天动听 半透明Menu效果 Android ...
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D...
“将Conway的“生活游戏”推广到一个连续的领域-SmoothLife” ... 此应用要求您的设备支持Android动态壁纸。 否则将无法打开。 希望我最终可以解决该问题。 它也是一个占用大量CPU的应用程序。 可以更改某些
《android 2.3应用开发实战》包括 android介绍、开发环境、应用开发...googlemaps、音频和视频、2d绘图和 3d opengl绘图、surfaceview、动态壁纸、蓝牙通信、触控、感应检测、android 2.3特性、照相机、voip等内容。
全书共分12章,主要以范例集的方式来讲述Android的开发应用,详细介绍了Android的移动查询系统、数据库客户端、网络游戏开发、动态壁纸游戏、移动管理系统、导航与地图开发(LBS)、Web端和移动客户端开发、单机项目...