Android

Android TV应用开发总结

2020-12-24  本文已影响0人  瑟闻风倾

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 屏幕上的文字和阅读量。

image.png
(2) 主屏幕设计:主屏幕是用户体验的起点。它以丰富而生动的方式大体呈现出应用和内容,包括搜索、推荐以及设置的访问途径。如需详细了解如何设计主屏幕,请参阅 Material Design 指南 image.png

3.2 用户交互(导航、焦点和选择)

(1) 导航架构—使用遥控器方向键实现TV 屏幕上的导航操作

Android 框架会自动处理布局元素之间的方向导航(Android 框架会根据布局中可聚焦元素的相对位置自动应用方向导航架构),因此您通常无需对应用执行任何额外的操作。不过,您应该对通过方向键控制器导航进行全面测试,以发现任何导航问题。请遵循以下准则来测试您应用的导航系统是否能够在 TV 设备上与方向键很好地搭配使用:

  • 确保用户可使用方向键控制器导航到屏幕上的所有可见控件。
  • 对于获得焦点的滚动列表,请确保可使用方向键的向上键和向下键滚动列表,并可使用 Enter 键选择列表中的项目。验证用户是否可选择列表中的元素,以及选择元素时是否列表仍会滚动。
  • 确保控件间的切换简单明了并且可以预测。
<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上无法安装。

上一篇 下一篇

猜你喜欢

热点阅读