Android 4.2 的“白日梦”(Daydream)
jopen 12年前
你可以说这是“标题党”,但“白日梦”(Daydream)确实是 Android 4.2 的一个新特性。
你可以将该特性看作是一个互动式的屏幕保护程序,在设备闲置或锁屏时,可以显示特定的图片、订阅的新闻或其他内容。
开发者可以通过 Android UI 工具来使应用支持该模式,可以采用应用程序中现有的组件(包括布局、动画、3D 或自定义视图),或者将这些组件重新混合,来为用户提供丰富的互动体验,还可以将用户吸引到完整的应用程序中。这有些类似于某些视频游戏开始时的动画。
Google Currents 就是个很好的例子,这是一个移动杂志阅读应用,该应用聚合各大媒体的内容,在用户的设备上输出杂志样式的文章。在 Daydream 模式下,会以滑动的形式显示一个看起来非常有趣的故事,点击这个故事,会全屏显示,再次点击,会打开 Currents 应用。
Daydream 的实现
Daydream 是通过 android.service.dreams.DreamService 子类来实现的,下面是一些关键的方法:
- onAttachedToWindow ():初始设置
- onDreamingStarted ():启动动画和计时器
- onDreamingStopped ():停止动画
- onDetachedFromWindow ():清除你在 onAttachedToWindow ()中构建的所有东西
可能会调用的一些重要方法:
- setContentView ():设置 Daydream 场景
- setInteractive (boolean):默认情况下,用户触摸时 Daydream 会退出。如果你希望与用户交互,则调用 setInteractive (true)
- setFullscreen (boolean):隐藏状态栏
- setScreenBright (boolean):默认情况下,Daydream 是全亮度模式,设置为 false 会降低屏幕亮度
详细信息:Daydream: Interactive Screen Savers
文档和示例:
- 文档:DreamService API
- 示例代码:BouncerDaydream,一个跳跃的 Android 小绿人
- 示例代码:WebView,显示一个 HTML 页面
- 示例代码:Colors,演示 OpenGL ES 2.0 和 TextureView来自: www.iteye.com