一个樱花飘落的动态壁的例子学习动态壁纸开发。 图片来源于樱花动态壁纸.apk, 源码见底部
动态墙纸的是一个比较特殊的APK。
Android动态墙纸的本质是一个“Service”,这个Service通过AndroidManifest.xml文件中Service的intent-filter的action能够被主界面Launcher加载。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.fenghuo.wallpaper.sakura"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service android:name="net.fenghuo.wallpaper.sakura.WallpaperService"
android:label="@string/app_name"
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/wallpaper"/>
</service>
<activity android:name="WallpaperSettingsActivity" android:label="设置" android:exported="true"/>
</application>
</manifest>
Launcher和动态墙纸的进程可以通过框架里的WallpaperManager进行进程间通信罢了,用户在Launcher桌面滑动、点击屏幕时有的动态墙纸能产生交互效果。
下面给大家大概的步骤创建一个的Live Wallpaper。
1. 首先我使用Eclipse创建一个标准的Android工程无需创建Acitivity。
2. 加入动态壁纸的设置界面,我们在/res/文件夹中新建一个名为xml的文件夹,新建一个utf8编码的xml文件,名为wallpaper.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"
android:thumbnail="@drawable/icon" android:description="@string/description"
android:settingsActivity="net.fenghuo.wallpaper.sakura.WallpaperSettingsActivity" />
其中thumbnail指定的是在系统动态壁纸选择列表里显示的图标,description则是文字说明.settingsActivity指定是是点击设置按钮调用的Activity
3.实现继承了WallpaerService的类了。只需要重写WallpaperServiced的onCreateEngine方法。
在这个方法里只需返回一个Engine的子类对象就可以了。所以写动态壁纸程序的主要工作量就是实现Engine的子类。
该类的作用就是让你去实现动态壁纸的具体代码。一般要重写的方法的功能。
public void onCreate(SurfaceHolder surfaceHolder){...}
public void onDestroy(){...}
public void onVisibilityChanged(boolean visible){
if(visible){//可见
...
}else{ ////不可见
...
}
}
该方法作用是当前动态壁纸可见时要画图。重写这个方法一般如以上格式所示。
public void onSurfaceCreated(SurfaceHolder holder) {
...
}
该方法是应用程序第一次创建时要调用。可在这个方法里调用父类对应方法。该方法执行完毕后系统会立即调用onSurfaceChanged方法。若在这里调用父类对应方法,那么就在onSurfaceChanged中实现主要功能。
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height){
...
}
该方法有两个用处。1.若动态壁纸要随着横屏竖屏而切换可在这里写。2.想和用户交互的话,比如用户滑动屏幕时,点击屏幕时等。3.注意:onSurfaceCreated调用之后会立即调用该方法。
4.在manifest中注册一个service。
<service android:name="net.fenghuo.wallpaper.sakura.WallpaperService"
android:label="@string/app_name"
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/wallpaper"/>
</service>
在这个servier中要指定你继承WallpaperService类的路径,指定1中设置的xml,设置广播,设置允许权限等。比如:
通过android:name="net.fenghuo.wallpaper.sakura.WallpaperService"指定继承WallpaperService的类 ,
通过android:permission="android.permission.BIND_WALLPAPER">允许动态壁纸权限。
这一种还必须设置一个<intent-filter>,用来监听Android系统发出的动态壁纸的广播。
具体信息则通过<meta-data android:name="android.service.wallpaper" android:resource="@xml/wallpaper"/> .
源代码如下。
- 大小: 19.2 KB
- 大小: 19.8 KB
- 大小: 23.3 KB
分享到:
相关推荐
第一步:安装 Python 相关工具如要制作动态樱花飘落效果,我们需要安装 pygame 和 numpy 两个 Python 工具。其中,pygame 是 Python 中非常优秀的游戏开发工具之一,而 numpy 则是 Python 中的数学运算模块,可用于...
一款写好的樱花飘落模板源码,上传到根目录就可使用,非常漂亮!完美无错
Android应用源码完美的樱花凋零动态壁纸项目
一个樱花飘落的动态桌面的exe文件,打开后会在您的桌面上飘落樱花,再到网上下一张樱花的桌面背景,很好看。基本不影响电脑速度。比较实用的动态桌面,比一般的gif的动态桌面方便多了,支持windows XP和windows ...
HTML5樱花飘落背景动画特效 HTML5樱花樱花掉落背景动画 脚本简介:HTML5樱花掉落背景动画特效是一款很多樱花不停的飘落动画特效,静态网页,可作为网站网页动态美观的特效背景,提高个性化设计。
1、本文详细描述了C++语言实现樱花飘落效果的方法。 2、通过详细示例,让读者更直观地阅读,更清晰的理解。 3、示例代码可直接复制,编译后可直接运行。 4、根据示例以及运行结果,让读者加强记忆及理解。
本程序是应用OpenGL编写的樱花飘落场景绘制
HTML+JS樱花飘落特效+鼠标点击特效(源码)
网页特效代码:樱花飘落、下雪、花瓣飞舞等。多达50个特效动画!!
樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花3D飘落效果樱花...
python樱花飘落代码
樱花飘落特效 文章连接 https://editor.csdn.net/md?articleId=106728106
樱花片片漂落,随屏幕滚动显示,浪漫月夜,樱花飞舞。 供大家学习之用,图片资源来自 樱花动态壁纸.apk ,版权归原作者,不要用于商业目的。
超漂亮的前端樱花飘落特效
樱花飘落的效果 flash
python樱花飘落代码python樱花飘落代码python樱花飘落代码python樱花飘落代码python樱花飘落代码python樱花飘落代码
html樱花飘落代码,用一个js脚本来给网站添加樱花飘落效果
c++樱花飘落代码
android樱花表动态壁纸源码,是一个很不错的Android代码,有兴趣的伙伴们抽时间可以看一下把。