自定义表盘探索之CanvasWatchFaceService
2016-05-17 02:31
253 查看
要重写就要先看源码,下面就来看看实例源码做了哪些事:
0说明·
权限:表盘需要
Android
Wear 的表盘实现为Service 。当表盘处于活动状态时,系统会在时间改变或者出现重要的时间(如切换到环境模式或者接收到一个新的通知)的时候调用服务的方法。服务实现接着根据更新的时间和其它相关的数据将表盘绘制到屏幕上。
1.继承extends CanvasWatchFaceService(他就是个service)
1.2重写 Engine方法
1.3当然还有一些小罗罗,比如onCreateEngine,比如时钟的回调函数类: EngineHandler
2关于Engine,这里面要初始化哪些东西,下面我们来看看:
1.既然继承自service,就有一些规矩套路
onDraw(非常重要)画表盘的
onCreate
onDestroy
registerReceiver
unregisterReceiver
在manifest里定义圆形方形、背景的对应文件
3正题,表盘设计
3.1 设计原则:
注意方形square 和圆形round
支持有限颜色的环境模式(ambient mode)和全彩色动画的交互模式(interactive mode)。
实现方案有以下特点:
一幅或多幅背景图片
接收需要数据的应用代码
绘制背景图片上的文本和形状的应用代码
密度(hdpi)应该是 320 x 320 像素,这样可以同时兼容方形和圆形设备。背景图片的四角在圆形设备上是不可见的。
为了增加电池使用时间,在环境模式绘制表盘的应用代码应该相对简单,有限颜色,交互下才全彩
0说明·
权限:表盘需要
PROVIDE_BACKGROUND和
WAKE_LOCK权限。
Android
Wear 的表盘实现为Service 。当表盘处于活动状态时,系统会在时间改变或者出现重要的时间(如切换到环境模式或者接收到一个新的通知)的时候调用服务的方法。服务实现接着根据更新的时间和其它相关的数据将表盘绘制到屏幕上。
1.继承extends CanvasWatchFaceService(他就是个service)
1.2重写 Engine方法
1.3当然还有一些小罗罗,比如onCreateEngine,比如时钟的回调函数类: EngineHandler
2关于Engine,这里面要初始化哪些东西,下面我们来看看:
1.既然继承自service,就有一些规矩套路
onDraw(非常重要)画表盘的
onCreate
onDestroy
registerReceiver
unregisterReceiver
在manifest里定义圆形方形、背景的对应文件
3正题,表盘设计
3.1 设计原则:
注意方形square 和圆形round
支持有限颜色的环境模式(ambient mode)和全彩色动画的交互模式(interactive mode)。
实现方案有以下特点:
一幅或多幅背景图片
接收需要数据的应用代码
绘制背景图片上的文本和形状的应用代码
密度(hdpi)应该是 320 x 320 像素,这样可以同时兼容方形和圆形设备。背景图片的四角在圆形设备上是不可见的。
为了增加电池使用时间,在环境模式绘制表盘的应用代码应该相对简单,有限颜色,交互下才全彩
相关文章推荐
- MySQL创建外键时报Can't create table (errno: 150)错误解决办法
- Java过滤器与SpringMVC拦截器之间的关系与区别
- VSCODE 插件初探
- 自定义表盘探索1
- 内部类
- LayoutInflater.inflate()调用后View的构造方法和onFinishInflate()方法执行的顺序
- 【UNITY填坑日记】unity图片资源优化神器dither4444
- 自定义规则,对List<Map<String,Object>> List<Object>进行排序
- [ObjectC]Runtime运行时之三:方法与消息
- 浅谈:无处不在的二分(2)
- 加密、解密、openssl的基本应用 及CA的实现过程
- u3d editor扩展学习
- 分布式事务之一:SOA需要怎样的事务控制方式
- 有必要阅读android源码吗
- 《易经》 数中以9最为奇妙
- 快速配置Linux下的编程环境变量
- 快速查看Linux网络状态
- SM2算法第十一篇:扫盲HTTPS和SSL/TLS协议
- 【UNITY填坑日记】UGUI不消耗DRAW CALL的EventTrigger接收器
- HDU - 5685 Problem A