小部件 Original Version

[

开发者文档

App Widgets

](http://developer.android.com/guide/topics/appwidgets/index.html)
窗口小部件是自定义主屏幕的重要部分。你可以在主屏幕上“一眼”就看到应用中的重要信息和功能,并进行操作。用户可以在主屏幕面板之间移动小部件,如果小部件支持,还可以调整大小。

小部件类型

当你设计小部件时,请考虑一下你希望使用的是哪一种小部件。小部件一般分为以下几类:

信息小部件

信息小部件一般用来显示一些重要的信息,并且会随着时间而改变。最好的例子就是天气小部件、时钟小部件和比分牌小部件。触摸信息小部件一般都会打开关联的应用,显示更加详细的信息。

小部件 - 图1

列表小部件

列表小部件用于显示一系列信息,例如相册应用中的图片列表、新闻阅读应用中的文章列表或者通信应用中的短消息列表。列表小部件一般有两种用途: 浏览列表和在应用中打开指定项目的详细信息。列表小部件可以纵向滑动。

小部件 - 图2
列表视图小部件

小部件 - 图3
网格视图小部件

控制小部件

控制小部件主要是方便用户,让他们在主屏幕上就能开关一些常用的设置而不用进入应用。可以理解为应用的遥控器。

小部件 - 图4

控制小部件不一定会打开关联应用的详细视图,如果操作会产生结果,那么应该打开,比如搜索小部件要显示结果列表。

混合小部件

有些小部件可以综合以上所述的小部件特点,组合成一种新型的小部件。

设计你自己的小部件时,应当以一种为基础,根据需要增加其他类型小部件的元素。

小部件 - 图5

音乐播放器小部件是以控制小部件为基础的,不过小部件上也能显示当前正在播放的音乐。它将控制小部件和信息小部件的元素结合在了一起。

小部件的限制

小部件可以被理解为一个“迷你应用”,所以设计小部件是有所限制的:

手势

因为小部件是放在主屏幕上的,所以必须和主屏幕的导航手势共存。小部件手势的限制是相对于全屏应用来说的。全屏应用可以使用多种手势在视图之间切换,但是小部件的手势不能和主屏幕导航用的相同。

所以只有两种可用的手势:

  • 触摸
  • 纵向滑动小部件 - 图6

元素

因为上述的操作限制,有些需要特定手势的 UI 元素对于小工具来说是不可用的。请参见 "Creating App Widget Layouts" 的 App Widgets API 使用指导。

设计指导

小部件内容

小部件可以吸引用户关注你的应用,可以作为应用中新内容的“广告”。

就像报纸头版的大幅广告,小部件可以展示应用中的信息,并与应用中的详细信息建立联系。或者换句话说: 小部件相对于应用来说就是一道“甜品”。请保证应用显示的内容比小部件已经显示的更多。

小部件导航

除了纯粹的信息内容,你还应该考虑在小部件上增加应用中常用操作的导航。这样可以使用户直接从主屏幕进入常用功能,更快的完成操作。

可以摆在小部件上的导航链接是:

  • 创建功能: 有些操作使用户在应用中新建内容,例如新建文档或者编写新信息。
  • 打开应用的顶层视图: 触摸信息元素一般将用户带到详细信息视图。应该提供一个导航到应用顶层视图的按钮,这样用户就不用摆一个应用的图标在主屏幕上了。一般将你应用的图标放置在小部件上,以区别信息区域。

调整小部件大小

从 3.1 版开始,Android 就提供了可调整大小的小部件。用户可以调整小部件的宽度和高度。你可以决定你的小部件是可以随意调整大小还是只能在指定方向上调整大小。你不需要为固定大小的小部件提供调节能力。

让用户调整大小有一些好处:

  • 他们可以调节小部件中显示信息的数量。
  • 他们可以自由的调节主屏幕上小部件和图标的布局。

小部件 - 图7
长按之后可以进入小部件的大小调整模式。用户可以通过拖拽边框,将小部件调整到合适的大小。

是否可以调整大小取决于小部件的设计目的。列表或者网格形式的小部件比较容易处理,调整大小仅仅变化滚动区域,小部件中的内容用户仍然可以通过滑动来看到。信息小部件则比较难处理,因为这种小部件需要可操作的空间,而且由于不能滑动,内容需要自适应调整后的大小。你需要动态的调整小部件中的内容和布局,以适应新的大小。
小部件 - 图8
例子中,用户可以在横向的 4 个档位上调整天气小部件的大小,小部件会随着不断变大而自动显示更加丰富的天气内容。

不同的大小决定了小部件显示不同的内容。较小的大小时,小部件应当显示重要的信息,当体积较大时,可以显示更加华丽的内容。

考虑布局

根据不同的设备和显示模式的大小,为你的小部件进行布局是比较复杂的。通过不断的实验来调整布局,但是请记住以下几点:

  • 不同设备屏幕上可容纳的内容数量和大小是千差万别的,因此你的小部件最好能自适应不同于预期的空间大小。
  • 实际上,当用户调整小部件大小时,系统提供给小部件的是以 dp 为单位的大小范围。所以按照“大小档位 (size buckets)”来设计您的小部件自适应策略会比较可靠。

小部件设置

有时小部件需要先设置才能使用。以 email 小部件为例,你需要首先提供一个帐号,才能显示收件箱的内容。或者对于照片小部件来说,需要首先指定显示哪个相册。

Android 小部件应当在被放置到主屏幕上时,就显示设置界面。保持小部件的设置简洁,不要超过 2-3 个设置项。应当使用对话框而不是全屏幕应用的视图,使用户在设置的同时能看到其他内容,哪怕这样做需要多个对话框。

小部件 - 图9
当放置了 Play 小部件到主屏幕之后,小部件就会询问需要显示哪些内容。

检查清单

  • 小部件应当关注于少量可快速辨别的信息。详细的信息在你的应用中显示。

  • 选择合适的小部件类型。

  • 如果可以调整大小,仔细考虑小部件应当如何适应不同的大小。

  • 使你的小部件有自适应性,这样小部件就能独立于屏幕方向和设备。