W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
編寫:awong1900 - 原文:http://developer.android.com/training/tv/start/navigation.html
TV設(shè)備為應(yīng)用程序提供一組有限的導(dǎo)航控件。為我們的TV應(yīng)用創(chuàng)建有效的導(dǎo)航方案取決于理解這些有限的控件和用戶操作應(yīng)用時(shí)的限制。因此當(dāng)我們?yōu)門V創(chuàng)建Android應(yīng)用時(shí),額外注意用戶是用遙控器按鍵,而不是用觸摸屏導(dǎo)航我們的應(yīng)用程序。
這節(jié)課解釋了創(chuàng)建有效的TV應(yīng)用導(dǎo)航方案的最低要求和如何對(duì)應(yīng)用程序使用這些要求。
在TV設(shè)備上,用戶用遙控器設(shè)備的方向手柄(D-pad)或者方向鍵去控制控件。這類控制器限制為上下左右移動(dòng)。為了創(chuàng)建最優(yōu)化的TV應(yīng)用,我們必須提供一個(gè)用戶能快速學(xué)習(xí)如何使用有限控件導(dǎo)航的方案。
Android framework自動(dòng)地處理布局元素之間的方向?qū)Ш讲僮鳎虼宋覀儾恍枰趹?yīng)用中做額外的事情。不管怎樣,我們也應(yīng)該用D-pad控制器實(shí)際測(cè)試去發(fā)現(xiàn)任何導(dǎo)航問題。接下來的指引是如何在TV設(shè)備上用D-pad測(cè)試應(yīng)用的導(dǎo)航。
基于布局元素中可選中的元素的相對(duì)位置,Android framwork自動(dòng)應(yīng)用導(dǎo)航方向方案。我們應(yīng)該用D-pad控制器測(cè)試生成的導(dǎo)航方案。在測(cè)試后,如果我們想規(guī)定用戶以一個(gè)特定的方式在布局中移動(dòng),我們可以在控件中設(shè)置明確的導(dǎo)航方向。
Note: 如果系統(tǒng)使用的默認(rèn)順序不是很好,我們應(yīng)該僅用這些屬性去修改導(dǎo)航順序。
接下來的示例代碼展示如何為TextView布局控件定義下一個(gè)控件焦點(diǎn)。
<TextView android:id="@+id/Category1"
android:nextFocusDown="@+id/Category2"\>
接下來的列表展示了用戶接口控件所有可用的導(dǎo)航屬性。
屬性 | 功能 |
---|---|
nextFocusDown | 定義用戶按下導(dǎo)航時(shí)的焦點(diǎn) |
nextFocusLeft | 定義用戶按左導(dǎo)航時(shí)的焦點(diǎn) |
nextFocusRight | 定義用戶按右導(dǎo)航時(shí)的焦點(diǎn) |
nextFocusUp | 定義用戶按上導(dǎo)航時(shí)的焦點(diǎn) |
去使用這些明確的導(dǎo)航屬性,設(shè)置另一個(gè)布局控件的ID值(android:id
值)。我們應(yīng)該設(shè)置導(dǎo)航順序?yàn)橐粋€(gè)循環(huán),因此最后一個(gè)控件返回至第一個(gè)焦點(diǎn)。
在TV設(shè)備上的應(yīng)用導(dǎo)航方案的成功是基于用戶如何容易的決定屏幕上界面元素的焦點(diǎn)。如果我們不提供清晰的焦點(diǎn)項(xiàng)顯示(和用戶能操作的選項(xiàng)),他們會(huì)很快泄氣并退出我們的應(yīng)用。同樣的原因,重要的是當(dāng)我們的應(yīng)用開始或者任何無操作的時(shí)間中,總是有焦點(diǎn)項(xiàng)可以立即操作。
我們的應(yīng)用布局和實(shí)現(xiàn)應(yīng)該用顏色,大小,動(dòng)畫或者它們組在一起來幫助用戶容易地決定下一步操作。在應(yīng)用中用一致的焦點(diǎn)顯示方案。
Android提供Drawable State List Resources來實(shí)現(xiàn)高亮選中的焦點(diǎn)。接下來的示例代碼展示了如何為用戶導(dǎo)航到控件并選擇它時(shí)使用視覺化按鈕顯示:
<!-- 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示例代碼對(duì)按鈕控件應(yīng)用了上面的按鍵狀態(tài)列表drawable:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
確保在可定為焦點(diǎn)的和可選中的控件中提供了充分的填充,以便圍繞它們的高亮是清楚的。
更多建議關(guān)于TV應(yīng)用中設(shè)計(jì)有效的選中和焦點(diǎn),看Patterns of TV。
下一節(jié): 創(chuàng)建TV播放應(yīng)用 >
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: