Return to Video

Working with Muzei

  • 0:02 - 0:06
    我们已经学习过了通知,
    最近也了解了小部件。
  • 0:06 - 0:09
    它们都是 Android 系统所提供的
    很好的 API 例子,
  • 0:09 - 0:13
    让应用可以扩展到
    我们开始时的全屏活动以外。
  • 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
    所提供边界的 API,让我们
    只需考虑向 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 是一个意图服务,
  • 1:02 - 1:05
    Muzei 将连接至
    我们的壁纸。
  • 1:05 - 1:09
    Muzei 通过意图筛选器了解它是否
    可以连接到我们的服务。
  • 1:09 - 1:11
    还包括一个特殊图标、
  • 1:11 - 1:16
    描述,甚至颜色以使
    sunshine 更好用。
  • 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
    来获得适当的壁纸 URL,
    然后构建 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 的主活动
    似乎是可以让我
  • 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
    我们可以使用与
    Widget 相同的方法,并
  • 2:37 - 2:40
    使用更改数据的
    操作来触发更新。
  • 2:40 - 2:44
    也就是说,不论数据何时发生更改,
    我们都会同时更新壁纸。
  • 2:44 - 2:47
    这样一来,
    我们就触发了服务。
  • 2:47 - 2:51
    因此,我们要向同步适配器
    添加 startService 调用。
  • 2:51 - 2:55
    然后,onHandleIntent
    可以包括适用于数据
  • 2:55 - 2:56
    更新操作的特殊检查。
  • 2:56 - 2:59
    如果我们启用,并且用户
    选择了我们作为背景来源,
  • 2:59 - 3:02
    我们就可以调用
    自己的更新方法。
Title:
Working with Muzei
Description:

Qu3DYFsBv4Q

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

Chinese, Simplified subtitles

Revisions Compare revisions