1. 概述
Android TV:Android TV 应用采用的架构结构
与手机和平板电脑应用相同。您可以根据自身对构建 Android 应用的既有知识构建新的 TV 应用,也可以扩展现有应用,使其支持 TV 设备。
2. 电视应用用户需求及设计准则
(1) 使用场景及对应的用户体验要求(需求
)
与使用手机或平板电脑相比,用户在看电视时有不同的期望。这些差异大大影响了提供出色的电视用户体验的要求。
- 距离影响文字阅读:典型的电视用户坐在离屏幕约 10 英尺的位置,所以小细节没那么引起注意,小文本难以阅读,
建议限制 TV 屏幕上的文字和阅读量
。- 遥控导航和选择(遥控器而非触摸屏):由于用户离电视较远,因此必须使用一种
遥控设备来导航和进行选择
,而不是轻触屏幕上的元素。
(2) 应遵循的设计准则(视觉设计与用户交互)
为确保
提供出色的电视用户体验
,电视设备的应用必须满足特定的易用性
要求,首先要查阅并遵循 Android TV 设计准则,其中提供关于如何为电视应用打造最佳用户体验的说明。您还应查看构建电视应用培训,以了解电视应用的基本实现要求。
重要说明
(电视应用质量):为确保提供出色的用户体验,电视设备的应用必须满足特定的易用性要求。只有符合TV质量标准的应用才能有资格在 Google Play 上作为 Android TV 应用。
3. 实战经验—视觉设计和用户交互
3.1 视觉设计
(1) 总体设计要求:由于 TV 的观看距离较远,因此用户在 TV 上处理的信息可能不如在计算机或移动设备上处理的多。建议限制 TV 屏幕上的文字和阅读量。
(2) 主屏幕设计:主屏幕是用户体验的起点。它以丰富而生动的方式大体呈现出应用和内容,包括搜索、推荐以及设置的访问途径。如需详细了解如何设计主屏幕,请参阅 Material Design 指南。 image.png
3.2 用户交互(导航、焦点和选择)
- 导航:用户使用遥控器按钮(而非触摸屏)在您的应用内导航,用户通常使用方向键在 TV 设备上导航。这种类型的控制器将移动操作限定在上、下、左、右四个方向。在针对 TV 设计应用时,请在列表和网格中对齐对象,从而确保您的界面具有清晰的两轴导航路径。
-
聚焦:要使应用与方向键控制器完美搭配使用,一个关键方面是确保始终存在一个明显聚焦的对象。应用必须清楚地指明聚焦的对象,这样用户就很容易看出他们可以执行的操作。您可以使用缩放、阴影亮度、不透明度和动画其中之一或组合使用这些属性,帮助用户看出聚焦的对象。
image.png
(1) 导航架构—使用遥控器方向键实现TV 屏幕上的导航操作
- 使用方向键控制器测试Android 框架生成的导航架构
Android 框架会自动处理布局元素之间的方向导航
(Android 框架会根据布局中可聚焦元素的相对位置自动应用方向导航架构),因此您通常无需对应用执行任何额外的操作。不过,您应该对通过方向键控制器导航进行全面测试,以发现任何导航问题。请遵循以下准则来测试
您应用的导航系统是否能够在 TV 设备上与方向键很好地搭配使用:
- 确保用户可使用方向键控制器导航到屏幕上的所有可见控件。
- 对于获得焦点的滚动列表,请确保可使用方向键的向上键和向下键滚动列表,并可使用 Enter 键选择列表中的项目。验证用户是否可选择列表中的元素,以及选择元素时是否列表仍会滚动。
- 确保控件间的切换简单明了并且可以预测。
-
自定义方向导航系统
测试Android 框架默认的导航架构后,若系统应用的默认顺序不太合理,可使用下列属性为控件设置显式方向导航,从而修改导航顺序,是用户以特定方式在布局中导航。
image.png
<Button
android:id="@+id/activity_main_btnSummary"
android:layout_width="@dimen/board_wh"
android:layout_height="@dimen/board_wh"
android:background="@drawable/btn_summary_normal"
android:nextFocusUp="@id/activity_main_spinner"
android:nextFocusRight="@id/activity_main_btnProduction"/>
(2) 提供明确的焦点和选择
应用的导航架构能否在 TV 设备上发挥作用取决于用户判定屏幕上获得焦点的界面元素方面的便利性。如果您不能明确指示获得焦点的项目(因此也就无法明确指示用户可以采取操作的项目),用户可能很快就会因失望而退出您的应用。出于同一原因,在您的应用启动后或者处于闲置状态的任何时间,必须始终有获得焦点的项目可供用户采取操作。
您的应用布局和实现应使用颜色、尺寸和动画其中之一或组合使用这些属性来帮助用户轻松判定他们接下来可以采取的操作。应使用统一方案在整个应用内指示焦点。
Android 提供了可绘制对象状态列表资源来实现针对获得焦点的控件和选定控件的突出显示。以下代码示例演示了如何通过为按钮启用视觉行为来指示用户已导航到该控件而且随后还选择了它:
<!-- res/drawable/button.xml -->
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
以下布局 XML 示例代码会将上一状态列表可绘制对象应用于 Button
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
请务必在可聚焦控件和可选择控件内提供足够的内边距,以使其周围的突出显示元素清晰可见。
注意
:经验证,使用可绘制对象
应用于控件button来改变按钮效果的方式,会导致应用在飞利浦android4.4
上无法安装。
网友评论