当动态壁纸的可见性发生变化时触发此方法,举例说在桌面上时,动态壁纸的visibility为true,当你运行某个程序的时候动态壁纸的visibility变为false,这里很好理解
引用
复制代码 public Bundle onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)
可以监听点击事件,点击时触发此方法,action为 android.wallpaper.tap,x记录了横坐标,y记录了纵坐标,z的作用未知,可能是为3d桌面预留下的? 没有试验过,z一般为0
还有一些重要的生命周期方法,和activity类似,就不多说了。
当你要将一个app定义为动态壁纸时,首先需要在AndroidManifest.xml中进行指定,前面提到过,动态壁纸是从 android 2.1 开始支持,所以需要添加
引用
复制代码 <uses-sdk android:minSdkVersion="7" />
由于还要对系统说明这是一个动态壁纸,我们还要加入
复制代码 <uses-feature android:name="android.softwate.live_wallpaper"/>除此之外,由于我们运行了service,所以同样需要对service进行配置
引用
<service android:name="LiveWallService" android:label="My_live _wallpaper" 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/livepaper"/> </service>
比较重要的部分首先是权限android:permission="android.permission.BIND_WALLPAPER"
其次service需要响应action
再就是配置文件了
复制代码 <meta-data android:name="android.service.wallpaper" android:resource="@xml/livepaper"/>
接下来接收配置文件。首先在res文件夹下建立一个xml目录,和写appwidget一样。










