Return to Video

Working with Muzei

  • 0:02 - 0:06
    我们已经学习了通知 刚刚还了解了小部件
  • 0:06 - 0:09
    它们都是 Android 系统所提供的 API 的好例子
  • 0:09 - 0:13
    它们让应用可以扩展到我们开始时所讲的全屏 activity 之外
  • 0:13 - 0:16
    但这不仅只局限于系统
  • 0:17 - 0:21
    其他应用也可以提供可让你整合到自己应用中的 API
  • 0:21 - 0:22
    以便你进一步扩展应用
  • 0:24 - 0:28
    研究一下就会发现 这正是 Muzei 的魔力所在
  • 0:28 - 0:32
    它可扩展 Android 提供的动态壁纸 API
  • 0:32 - 0:37
    让我们只需将新壁纸发送给 Muzei 即可
  • 0:37 - 0:41
    而它则承担向用户展示壁纸
  • 0:41 - 0:45
    控制壁纸亮度或模糊程度、解决视觉干扰问题等所有具体工作
  • 0:45 - 0:48
    我们在前面也提到过
  • 0:48 - 0:53
    如果用户希望 甚至可以将壁纸镜像复制到 Android Wear 设备
  • 0:53 - 0:54
    那么 具体该如何操作?
  • 0:54 - 0:56
    首先 添加一个 gradle 依赖项
  • 0:56 - 1:00
    然后为 MuzeiArtSource 添加一个清单项
  • 1:00 - 1:02
    MuzeiArtSource 是一项 Intent 服务
  • 1:02 - 1:05
    Muzei 将连接到该服务来获取我们的壁纸
  • 1:05 - 1:09
    Muzei 通过 Intent 过滤器获知它可连接到我们的服务
  • 1:09 - 1:11
    我们还将提供专用的图标、说明、颜色
  • 1:11 - 1:16
    以使 Sunshine 更好地融入 Muzei
  • 1:16 - 1:20
    那么 如果用户选择我们的应用作为壁纸会发生什么情况?
  • 1:20 - 1:24
    首先 我们通过 onEnabled 在 Muzei Art Source 中取得回调
  • 1:24 - 1:27
    然后是 onSubscriberAdded
  • 1:27 - 1:29
    接下来是最重要的一个 onUpdate
  • 1:29 - 1:34
    我们就是在此处发布壁纸供 Muzei 使用
  • 1:34 - 1:37
    同样地 用户选择其他应用时
  • 1:37 - 1:42
    我们会收到 onSubscriberRemoved 然后是 onDisabled 回调
  • 1:42 - 1:45
    那么 我们的 onUpdate 要如何写?
  • 1:45 - 1:48
    我们要进行一个简单的查询 以获得当前的天气
  • 1:48 - 1:52
    使用新的工具方法 getImageURLForWeatherCondition
  • 1:52 - 1:58
    来取得相应的壁纸网址 然后构建 Artwork 对象
  • 1:58 - 2:00
    在此例中 我们将加入 imageUrl
  • 2:00 - 2:04
    我们将使用天气描述作为标题或主要内容
  • 2:04 - 2:08
    然后 我们将 locationQuery 用作 byline
  • 2:08 - 2:10
    这是文本的第二行
  • 2:10 - 2:13
    Muzei 还提供了查看更多详情的功能
  • 2:13 - 2:16
    加载 Sunshine 的主 Activity 看起来是一种
  • 2:16 - 2:17
    查看更多详情的好方法
  • 2:18 - 2:21
    我们会将该图传递给 publishArtwork
  • 2:21 - 2:25
    像变魔术一样 我们会看到 Muzei 处理所有图像加载、动态壁纸编码和其他工作
  • 2:25 - 2:30
    以便在屏幕上以壁纸方式呈现我们的图像
  • 2:30 - 2:31
    很好
  • 2:31 - 2:35
    虽然可使用 Muzei 的 scheduleUpdate 方法
  • 2:35 - 2:37
    我们也可使用与小部件相同的方法
  • 2:37 - 2:40
    使用 dataUpdated 操作来触发更新
  • 2:40 - 2:44
    也就是说 不论何时只要数据发生变动 我们都可即时更新壁纸
  • 2:44 - 2:47
    在这里 我们会触发一项服务
  • 2:47 - 2:51
    我们将向同步适配器添加 startService 调用
  • 2:51 - 2:55
    然后 在 onHandleIntent 中加入一项特殊检查
  • 2:55 - 2:56
    用于 dataUpdated 操作
  • 2:56 - 2:59
    这样 如果我们已启用并且用户选择了我们作为背景来源
  • 2:59 - 3:02
    我们就可以调用自己的 onUpdate 方法
Title:
Working with Muzei
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
UD855 - Android Fundamentals 2
Duration:
03:03

Chinese, Simplified subtitles

Revisions Compare revisions