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的状态

附录

  • GURU - Android Live wallpaper Tutorial

Android 动态壁纸相关推荐

  1. android 动态壁纸开发

    转:http://www.eoeandroid.com/thread-100389-1-1.html android 动态壁纸开发 参考:http://www.ophonesdn.com/articl ...

  2. 制作android动态壁纸,如何使用LibGDx制作Android动态壁纸?

    我想制作 Android动态壁纸.我想使用LibGDx.我发现了这个信息: http://www.badlogicgames.com/wordpress/?p=2652 不幸的是,我的壁纸复制代码,e ...

  3. android动态壁纸的制作

    对于Android 2.1来说Live Wallpapers动态壁纸的加入为Android桌面加入了更好的动态效果.如何开发一个Android动态桌面呢? 下面Android123给大家一个详细的步骤 ...

  4. Android动态壁纸解析

    转载自 Yalin Jin的文章:http://www.kinglloy.com/ MENU Android动态壁纸解析 24 JULY 2017 阅读之前 建议下载使用Style动态壁纸应用 文章后 ...

  5. Android 动态壁纸开发(时钟)

    Android 动态壁纸开发(时钟) 这是我人生第一篇文章,希望大家不喜无喷啊!有兴趣的可以看看玩,因为语言组织能力有限,就废话不多说直接进入重点! 先看效果 上图是动态壁纸钟的一个时钟. 我们先来看 ...

  6. Android 动态壁纸引擎试刀学习(初识安卓引擎)

    动态壁纸蛮好玩的,也没接触过,看官方有就拿了学习下,是小马第一次接触引擎Engine,激动兴奋...效果做出来了,就放博客里,记录笔记,吼吼,跟大家交流学习, 废话不多说了,先看效果,再看源码,之后小 ...

  7. android水波效果,android动态壁纸中的水波纹效果

    [实例简介] android动态壁纸中的水波纹效果,采用opengl中的shader实现 [实例截图] [核心代码] @Override public String getVertexShader() ...

  8. LibGDX制作android动态壁纸

    一.还是像普通的android动态壁纸一样,创建一个没有activity的安卓工程TestLibGDXWallpaper 二.AndroidManifest.xml配置 <application ...

  9. android 动态壁纸

    引用:http://www.ophonesdn.com/article/show/278 http://developer.android.com/resources/samples/CubeLive ...

  10. android动态壁纸提取,[图]大神已提取出一加8T的动态壁纸:Android 8.0+设备均可使用...

    原标题:[图]大神已提取出一加8T的动态壁纸:Android 8.0+设备均可使用 在过去数周时间里,不断有一加8T的信息在网络上被曝光.在官方的预热和爆料人士分享的细节下,一加8T基本上已经浮出水面 ...

最新文章

  1. xcode 自带的git工具创建项目流程
  2. 框架画Button的入口
  3. VRP网络操作系统简介
  4. react 父子组件之间相互传值
  5. Hyper-V Windows 8.1 Windows Server 2012 R2 QA
  6. 调和方程(拉普拉斯方程)基本解和边界元方法的积分计算
  7. 在linux 命令行下从http下载东西
  8. 医药箱APP静态小项目
  9. TI公司CC系列的各种芯片的区别 CC2430 CC1100
  10. python+gdal+numpy实现影像uint16转uint8
  11. 工控行业什么时候用c语言,工控工程师需要掌握的知识
  12. Android persistent机制
  13. matlab基础学习——基础数学函数(持续更新)
  14. 云原生 - 自建数据库与云数据库RDS性能优势分析,值不值得购买?
  15. 在IDEA中解决jar包冲突的神操作-必看
  16. 模糊查询的hql语句_hql语句拼接模糊查询
  17. Java与Unix时间戳的相互转换
  18. 【决策树算法】泰坦尼克号乘客生存预测
  19. mysql 表 视图 索引吗_Mysql多表查询, 视图,事务,索引,函数,go连接数据库
  20. 多媒体嵌入及css高级应用

热门文章

  1. IDEA HTML 动态访问本地图片加载失败
  2. a5松下驱动器参数设置表_松下伺服驱动器参数设置MSD043A1X
  3. “声波识别”可用于购物
  4. Maven中的dependencyManagement
  5. 防163网易邮箱登录界面html,网易邮箱163,网易邮箱163登录界面
  6. wps word文档生成目录的时候显示断裂会生成大纲怎么办_橙瓜码字小说自动生成器,对话描写,景物描写,外貌描写自动生成...
  7. Anaconda下载速度慢
  8. MySQL技术内幕 InnoDB存储引擎 第2版 下载
  9. 怎么自学java_菜鸟如何自学Java
  10. java开发微信支付接口_JAVA微信支付接口开发——支付