您的位置:首页 > 其它

动态壁纸 Live Wallpaper 应用程序必须实现动态壁纸的服务程序 WallpaperService 和描绘动态壁纸的引擎 WallpaperService.Engine

2015-05-07 14:00 609 查看

动态壁纸Live Wallpaper架构

组件类

说明

WallpaperService

实现动态壁纸的服务程序

WallpaperService.Engine

描绘动态壁纸的引擎

PreferenceActivity

动态壁纸的参数设置窗体

动态壁纸 Live Wallpaper 应用程序必须实现动态壁纸的服务程序
WallpaperService 和描绘动态壁纸的引擎
WallpaperService.Engine ,当你需要设置动态壁纸的参数来改变动画的属性时,必须提供设置参数的窗体。此时才需要实现动态壁纸的参数设置窗体
PreferenceActivity 。

咱们先来说一次简单的步骤:

(1) 建一个类继承
WallpaperService ,比如说为 Live Wallpaper.java

(2) 然后在AndrodManifest.XML文件的<service>标签内定义动态壁纸的服务程序
Live Wallpaper.java和动态壁纸的资源来源“/res/XML/
live Wallpaper.XML”

(3) 还需要增加一个<Activity>标签来设置动态壁纸参数设置程序HelloLive
WallpaperSetting.java ,当然这个要去继承
PreferenceActivity

AndrodManifest.XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.njue.livewallpaper"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />

<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<service
android:label="@string/app_name"
android:permission="android.permission.BIND_WALLPAPER"
android:name=".LiveWallpaper">
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
</intent-filter>
<meta-data android:name="android.service.wallpaper"
android:resource="@xml/livewallpaper" />
</service>
<activity android:name=".LiveWallpaperSettings"
android:label="@string/wallpaper_settings"
android:theme="@android:style/Theme.Light.WallpaperSettings"
android:exported="true">
</activity>
</application>
</manifest>


/res/XML/ live Wallpaper.XML

<?xml version="1.0" encoding="UTF-8"?>
<wallpaper
xmlns:android="http://schemas.android.com/apk/res/android"
android:thumbnail="@drawable/floewr1"
android:description="@string/description"
android:settingsActivity="com.njue.livewallpaper.LiveWallpaperSettings"
/>

参数设置界面的布局代码 settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/settings">
<ListPreference
android:key="@string/leaf1Count"
android:title="@string/settings_title"
android:summary="@string/settings_summary"
android:entries="@array/entries"
android:entryValues="@array/values" />
<ListPreference
android:key="@string/flower1Count"
android:title="@string/settings_title1"
android:summary="@string/settings_summary1"
android:entries="@array/entries"
android:entryValues="@array/values" />
<ListPreference
android:key="@string/flower2Count"
android:title="@string/settings_title2"
android:summary="@string/settings_summary2"
android:entries="@array/entries"
android:entryValues="@array/values" />
<EditTextPreference
android:key="@string/inputText"
android:title="输入你喜欢的文字"
android:summary="点击输入"
android:dialogTitle="输入文字设置"

/>
<EditTextPreference
android:key="@string/wordCount"
android:title="一列显示的字符数"
android:summary="请输入数字"
android:dialogTitle="一列显示的字符数(请输入数字)"
android:digits="0123456789"
/>
<PreferenceCategory
android:title="恢复默认设置"
>
<CheckBoxPreference
android:key="@string/reset"
android:title="恢复默认设置"
android:summaryOn="恢复默认设置"
android:summaryOff="恢复默认设置"
android:defaultValue="false"
></CheckBoxPreference>
</PreferenceCategory>

</PreferenceScreen>


这是一个我自己编写的简单动态壁纸效果图:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐