Android 动态壁纸

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()方法。

方法

内部类

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

公有方法

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

保护方法

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

WallpaperService.Engine

继承关系

  • java.lang.Object
    • ↳android.service.wallpaper.WallpaperService.Engine

概述

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

方法

公有类

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

保护类

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

附录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值