Daydream是Android 4.2的一个新特性。

可以将DayDream看作是一个互动式的屏幕保护程序,在设备闲置或充电时,可以显示特定的界面,比如一张图片,一个网页,任何android设备支持的界面显示。

Google Currents就是个很好的例子,这是一个移动杂志阅读应用,当设备闲置时,在用户的设备上输出杂志样式的文章。在Daydream模式下,会以聚合的形式显示一个看起来非常有趣的故事,点击这个故事,会全屏显示,再次点击,会打开Currents应用。

OK,那么我们现在就着手书写一个简单的DayDreamDemo:

1,首先我们要了解DayDream的一些主要方法:

Daydream的实现

Daydream是通过android.service.dreams.DreamService子类来实现的,

这是Daydream一些关键重写方法:

  • onAttachedToWindow():初始设置
  • onDreamingStarted():启动动画和计时器
  • onDreamingStopped():停止动画
  • onDetachedFromWindow():清除你在onAttachedToWindow()中构建的所有东西

设置Daydream的一些重要方法:

  • setContentView():设置Daydream场景
  • setInteractive(boolean):默认情况下,用户触摸时Daydream会退出。如果你希望与用户交互,则调用setInteractive(true)
  • setFullscreen(boolean):隐藏状态栏
  • setScreenBright(boolean):默认情况下,Daydream是全亮度模式,设置为false会降低屏幕亮度

2,书写一个Daydream的继承类,API最低为17

import android.service.dreams.DreamService;public class DreamOne extends DreamService{@Overridepublic void onAttachedToWindow() {// TODO Auto-generated method stubsuper.onAttachedToWindow();setContentView(R.layout.activity_main);//这里为了演示Daydream的简单效果只是加载一个静态布局setInteractive(false);//是否可以互动,默认falsesetFullscreen(true);//是否全屏,隐藏状态栏}@Overridepublic void onDreamingStarted() {// TODO Auto-generated method stubsuper.onDreamingStarted();}@Overridepublic void onDreamingStopped() {// TODO Auto-generated method stubsuper.onDreamingStopped();}@Overridepublic void onDetachedFromWindow() {// TODO Auto-generated method stubsuper.onDetachedFromWindow();}
}

上面的代码片段中 onAttachedToWindow()中加载了一个静态布局。

3,配置AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.daydreamdemo"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="17"android:targetSdkVersion="18" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><serviceandroid:name=".DreamOne"android:exported="true"android:label="@string/app_name" android:icon="@drawable/ic_launcher"><span style="color:#ff0000;"> <intent-filter><action android:name="android.service.dreams.DreamService" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></span></service></application>
</manifest>

intent-filter保证了daydream会被系统正确寻找到。

最后,代码结构文件,大家可以看到非常简单。


这样,一个最简单的DayDream的静态图片展示完成了。

DayDream简单分析(一)相关推荐

  1. R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的

    R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集.非线性:基函数展开和样条分析.你简单分析的不重要特征,可能只是线性不显著.而非线性是显著的 目录

  2. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...

    在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...

  3. FFmpeg资料来源简单分析:libswscale的sws_getContext()

    ===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...

  4. howdoi 简单分析

    对howdoi的一个简单分析. 曾经看到过下面的这样一段js代码: try{doSth(); } catch (e){ask_url = "https://stackoverflow.com ...

  5. Mac与Phy组成原理的简单分析

    Mac与Phy组成原理的简单分析 2011-12-28 15:30:43 //http://blog.chinaunix.net/uid-20528014-id-3050217.html 本文乃fir ...

  6. python做数据可视化的代码_Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...

  7. ASIHTTPRequest源码简单分析

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 ASIHttprequest 是基于CFNetwork的,由于CFNetwork是比较底层的http库,功能比较少, ...

  8. Hessian 源码简单分析

    Hessian 源码简单分析 Hessian 是一个rpc框架, 我们需要先写一个服务端, 然后在客户端远程的调用它即可. 服务端: 服务端通常和spring 做集成. 首先写一个接口: public ...

  9. python预测股票价格tushare_用tushare对股票进行简单分析

    用tushare对股票进行简单分析(仅供交流学习) import numpy as np import pandas as pd import matplotlib.pyplot as plt imp ...

最新文章

  1. myeclipse8.6安装svn
  2. 47.2. 配置 Tomcat 服务器
  3. 为什么 char 数组比 String 更适合存储密码?
  4. Delphi指针大全
  5. Spring Cloud GatewayAPI网关服务
  6. go中如何使用easyjson_如何在 Go 中编写无 Bug 的 Goroutines?
  7. sql下员工工牌(YC0001)的简单实现和一些特殊查询
  8. 447. 回旋镖的数量
  9. 数据结构之选择排序:堆排序
  10. VB.NET项目技术总结
  11. vue表单实现输入框控制输入小数点后两位
  12. 学习C++项目——select模型,poll模型和epoll模型
  13. 什么样的人适合3D打印培训课程——宁波清车3D打印培训
  14. Android编程怎么打开,安卓手机如何开启开发者模式?简单三步骤教你解决!
  15. 社会性动物(艾略特•阿伦森)
  16. 一、Java面试基础之面向对象的特征:继承、封装和多态(原创实例)
  17. u9搜索引擎推送破解版
  18. html边框背景图片,css3 边框、背景、文本效果的实现代码
  19. 超高学费一年八万!华中师范大学伍伦贡联合研究院计算机硕士
  20. dbo.GetJsonValue函数

热门文章

  1. Open_cv中常用函数的原型及参数解释(一)
  2. left函数未定义_access中LEFT函数未定义的解决方案\表达式中'left'函数未定义。
  3. 【题解】【AcWing】1526. 洗牌机
  4. vue+element自动计算天数
  5. python实现英文新闻摘要自动提取_利用Python实现摘要自动提取,完美瘦身只需一行代码...
  6. 微信HTML5页面设计建议
  7. poi怎么设置某个单元格为下拉框_java excel 多选下拉列表设置
  8. 转载---SQL Server XML基础学习之7--XML modify() 方法对 XML 数据中插入、更新或删除...
  9. SEM竞价员一天的工作流程了解一下?
  10. 2019年8月21日 星期三(韩天峰的个人简历)