1. 概述
Android TV:Android TV 應(yīng)用采用的架構(gòu)結(jié)構(gòu)
與手機(jī)和平板電腦應(yīng)用相同涨享。您可以根據(jù)自身對(duì)構(gòu)建 Android 應(yīng)用的既有知識(shí)構(gòu)建新的 TV 應(yīng)用铐料,也可以擴(kuò)展現(xiàn)有應(yīng)用,使其支持 TV 設(shè)備蹂午。
2. 電視應(yīng)用用戶需求及設(shè)計(jì)準(zhǔn)則
(1) 使用場(chǎng)景及對(duì)應(yīng)的用戶體驗(yàn)要求(需求
)
與使用手機(jī)或平板電腦相比,用戶在看電視時(shí)有不同的期望构蹬。這些差異大大影響了提供出色的電視用戶體驗(yàn)的要求碎乃。
- 距離影響文字閱讀:典型的電視用戶坐在離屏幕約 10 英尺的位置,所以小細(xì)節(jié)沒那么引起注意,小文本難以閱讀魄梯,
建議限制 TV 屏幕上的文字和閱讀量
桨螺。- 遙控導(dǎo)航和選擇(遙控器而非觸摸屏):由于用戶離電視較遠(yuǎn),因此必須使用一種
遙控設(shè)備來(lái)導(dǎo)航和進(jìn)行選擇
酿秸,而不是輕觸屏幕上的元素灭翔。
(2) 應(yīng)遵循的設(shè)計(jì)準(zhǔn)則(視覺設(shè)計(jì)與用戶交互)
為確保
提供出色的電視用戶體驗(yàn)
,電視設(shè)備的應(yīng)用必須滿足特定的易用性
要求允扇,首先要查閱并遵循 Android TV 設(shè)計(jì)準(zhǔn)則缠局,其中提供關(guān)于如何為電視應(yīng)用打造最佳用戶體驗(yàn)的說(shuō)明。您還應(yīng)查看構(gòu)建電視應(yīng)用培訓(xùn)考润,以了解電視應(yīng)用的基本實(shí)現(xiàn)要求狭园。
重要說(shuō)明
(電視應(yīng)用質(zhì)量):為確保提供出色的用戶體驗(yàn),電視設(shè)備的應(yīng)用必須滿足特定的易用性要求糊治。只有符合TV質(zhì)量標(biāo)準(zhǔn)的應(yīng)用才能有資格在 Google Play 上作為 Android TV 應(yīng)用唱矛。
3. 實(shí)戰(zhàn)經(jīng)驗(yàn)—視覺設(shè)計(jì)和用戶交互
3.1 視覺設(shè)計(jì)
(1) 總體設(shè)計(jì)要求:由于 TV 的觀看距離較遠(yuǎn),因此用戶在 TV 上處理的信息可能不如在計(jì)算機(jī)或移動(dòng)設(shè)備上處理的多井辜。建議限制 TV 屏幕上的文字和閱讀量绎谦。
(2) 主屏幕設(shè)計(jì):主屏幕是用戶體驗(yàn)的起點(diǎn)。它以豐富而生動(dòng)的方式大體呈現(xiàn)出應(yīng)用和內(nèi)容粥脚,包括搜索窃肠、推薦以及設(shè)置的訪問(wèn)途徑。如需詳細(xì)了解如何設(shè)計(jì)主屏幕刷允,請(qǐng)參閱 Material Design 指南冤留。
3.2 用戶交互(導(dǎo)航、焦點(diǎn)和選擇)
- 導(dǎo)航:用戶使用遙控器按鈕(而非觸摸屏)在您的應(yīng)用內(nèi)導(dǎo)航树灶,用戶通常使用方向鍵在 TV 設(shè)備上導(dǎo)航纤怒。這種類型的控制器將移動(dòng)操作限定在上、下天通、左泊窘、右四個(gè)方向。在針對(duì) TV 設(shè)計(jì)應(yīng)用時(shí)像寒,請(qǐng)?jiān)诹斜砗途W(wǎng)格中對(duì)齊對(duì)象烘豹,從而確保您的界面具有清晰的兩軸導(dǎo)航路徑。
-
聚焦:要使應(yīng)用與方向鍵控制器完美搭配使用诺祸,一個(gè)關(guān)鍵方面是確保始終存在一個(gè)明顯聚焦的對(duì)象吴叶。應(yīng)用必須清楚地指明聚焦的對(duì)象,這樣用戶就很容易看出他們可以執(zhí)行的操作序臂。您可以使用縮放蚌卤、陰影亮度实束、不透明度和動(dòng)畫其中之一或組合使用這些屬性,幫助用戶看出聚焦的對(duì)象逊彭。
image.png
(1) 導(dǎo)航架構(gòu)—使用遙控器方向鍵實(shí)現(xiàn)TV 屏幕上的導(dǎo)航操作
- 使用方向鍵控制器測(cè)試Android 框架生成的導(dǎo)航架構(gòu)
Android 框架會(huì)自動(dòng)處理布局元素之間的方向?qū)Ш?/code>(Android 框架會(huì)根據(jù)布局中可聚焦元素的相對(duì)位置自動(dòng)應(yīng)用方向?qū)Ш郊軜?gòu))咸灿,因此您通常無(wú)需對(duì)應(yīng)用執(zhí)行任何額外的操作。不過(guò)侮叮,您應(yīng)該對(duì)通過(guò)方向鍵控制器導(dǎo)航進(jìn)行全面測(cè)試避矢,以發(fā)現(xiàn)任何導(dǎo)航問(wèn)題。請(qǐng)遵循以下準(zhǔn)則來(lái)
測(cè)試
您應(yīng)用的導(dǎo)航系統(tǒng)是否能夠在 TV 設(shè)備上與方向鍵很好地搭配使用:
- 確保用戶可使用方向鍵控制器導(dǎo)航到屏幕上的所有可見控件囊榜。
- 對(duì)于獲得焦點(diǎn)的滾動(dòng)列表审胸,請(qǐng)確保可使用方向鍵的向上鍵和向下鍵滾動(dòng)列表卸勺,并可使用 Enter 鍵選擇列表中的項(xiàng)目砂沛。驗(yàn)證用戶是否可選擇列表中的元素,以及選擇元素時(shí)是否列表仍會(huì)滾動(dòng)曙求。
- 確卑郑控件間的切換簡(jiǎn)單明了并且可以預(yù)測(cè)。
-
自定義方向?qū)Ш较到y(tǒng)
測(cè)試Android 框架默認(rèn)的導(dǎo)航架構(gòu)后悟狱,若系統(tǒng)應(yīng)用的默認(rèn)順序不太合理静浴,可使用下列屬性為控件設(shè)置顯式方向?qū)Ш剑瑥亩薷膶?dǎo)航順序挤渐,是用戶以特定方式在布局中導(dǎo)航苹享。
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) 提供明確的焦點(diǎn)和選擇
應(yīng)用的導(dǎo)航架構(gòu)能否在 TV 設(shè)備上發(fā)揮作用取決于用戶判定屏幕上獲得焦點(diǎn)的界面元素方面的便利性。如果您不能明確指示獲得焦點(diǎn)的項(xiàng)目(因此也就無(wú)法明確指示用戶可以采取操作的項(xiàng)目)浴麻,用戶可能很快就會(huì)因失望而退出您的應(yīng)用得问。出于同一原因,在您的應(yīng)用啟動(dòng)后或者處于閑置狀態(tài)的任何時(shí)間白胀,必須始終有獲得焦點(diǎn)的項(xiàng)目可供用戶采取操作。
您的應(yīng)用布局和實(shí)現(xiàn)應(yīng)使用顏色抚岗、尺寸和動(dòng)畫其中之一或組合使用這些屬性來(lái)幫助用戶輕松判定他們接下來(lái)可以采取的操作或杠。應(yīng)使用統(tǒng)一方案在整個(gè)應(yīng)用內(nèi)指示焦點(diǎn)。
Android 提供了可繪制對(duì)象狀態(tài)列表資源來(lái)實(shí)現(xiàn)針對(duì)獲得焦點(diǎn)的控件和選定控件的突出顯示宣蔚。以下代碼示例演示了如何通過(guò)為按鈕啟用視覺行為來(lái)指示用戶已導(dǎo)航到該控件而且隨后還選擇了它:
<!-- 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 示例代碼會(huì)將上一狀態(tài)列表可繪制對(duì)象應(yīng)用于 Button
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
請(qǐng)務(wù)必在可聚焦控件和可選擇控件內(nèi)提供足夠的內(nèi)邊距向抢,以使其周圍的突出顯示元素清晰可見。
注意
:經(jīng)驗(yàn)證胚委,使用可繪制對(duì)象
應(yīng)用于控件button來(lái)改變按鈕效果的方式挟鸠,會(huì)導(dǎo)致應(yīng)用在飛利浦android4.4
上無(wú)法安裝。