• 周五. 4 月 24th, 2026

物嫩软件资讯网

软件资讯来物嫩

Android 动态壁纸

admin@wunen

5 月 23, 2025

WallpaperService

继承关系

  • java.lang.Object

    • ↳android.content.Context

      • ↳android.content.ContextWrapper

        • ↳android.app.Service

          • ↳android.service.wallpaper.WallpaperService

概述

这是一个用于显示动态壁纸的Wallpaper Service。这个Service本身做的事情很少,它仅仅是在需要的时候创建一个WallpaperService.Engine对象而已。因此,当需要自定义动态壁纸的时候,我们需要创建一个Wallpaper Service的子类,同时重写包含在WallpaperService其中的Engine子类的onCreateEngine()方法。

方法

内部类

类型 方法名 介绍
class WallpaperService.Engine The actual implementation of a wallpaper.真正实现动态壁纸渲染的功能类

公有方法

类型 方法名 介绍
final IBinder onBind(Intent intent) Implement to return the implementation of the internal accessibility service interface.提供接口供用户使用
void onCreate() 开始创建的时候被调用
abstact WallpaperService.Engine onCreateEngine() 当需要返回一个新的WallpaperService.Engine对象的时候被调用
void onDestory() 当不被使用的时候将会被调用。

保护方法

类型 方法名 介绍
void dump(FileDescriptor fd,PrintWriter out,String[] args) 向流中写入WallpaperService的状态

WallpaperService.Engine

继承关系

  • java.lang.Object

    • ↳android.service.wallpaper.WallpaperService.Engine

概述

动态壁纸的渲染实现主要靠这个内部类来实现。一个动态壁纸服务(Wallpaper Service)需要考虑多个对象(instances)同时运行的情况(例如:该动态壁纸正在应用且用户在动态壁纸设置中预览该动态壁纸)。因此,你需要使用onCreateEngine()来返回明确的具体的Engine对象。

方法

公有类

类型 方法名 介绍
int getDesiredminimunHeight() 返回壁纸需要的最小高度,假如返回的值小于等于0,就返回默认显示的高度
int getDesiredminimunWidth() 返回壁纸需要的最小宽度,假如返回的值小于等于0,就返回默认显示的宽度
SurfaceHolder getSurfaceHolder() 可以在Wallpaper渲染时候进行一系列设置,如设置样式、设置宽高、设置透明度、保持屏幕常亮、锁定画布、解锁画布等等。
boolean isPreview() 当处于预览界面的时候,返回true。
boolean isVisible() 返回当前动态壁纸的状态。可视为真,不可视为假
Bundle onCommand(String action,int x,int y,int z,Bundle extras,boolean resultRequested) 执行发送到Wallpaper的指令(Command),默认返回null。
void onCreate(SurfaceHolder surfaceHolder) 当刚创建Engine的时候被调用
void onDesiredSizeChanged(int desiredWidth,int desireHeight) 当要求的宽高变化的时候被调用。
void onDestroy() 当Engine被销毁的时候被调用。
void onOffsetsChanged(float xOffsets,float yOffsets,float xOffsetStep,float yOffsetStep,int xPixelOffset,int yPixelOffset) 提供页面容器中的wallpaper的偏移量变化参数。
void onSurfaceChanged(SurfaceHolder holder,int format,int width,int height) 当SurfaceHolder的宽高发生变化的时候被调用。
void onSurfaceCreated(SurfaceHolder surfaceHolder) Surface被创建的时候被调用。
void surfaceDestroyed(SurfaceHolder surfaceHolder) Surface被销毁的时候被调用。
void onSurfaceRedrawNeeded() 当需要重新绘制Surface的时候被调用。
void onTouchEvent() 当有点击事件发生的时候被调用。
void onVisibility() 当从可视状态变为隐藏状态,或者隐藏状态变为可视状态的时候被调用。
void setOffsetNotificationsEnabled() 是否接收wallpaper的偏移通知。
void setTouchEventsEnabled() 是否接收点击事件

保护类

类型 方法名 介绍
void dump(String prefix,FileDescriptor fd,PrintWriter out,String[] args) 向流中写入WallpaperService的状态

附录

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注