Android Developers:针对电视优化导航
来源:互联网 发布:光线追踪算法实现 编辑:程序博客网 时间:2024/05/16 01:04
直接的交互界面是用户使用电视用户体验的一个重要方面。当你针对电视优化你的Android应用的时候,你应该特别注意,当使用远程控制替代触摸时用户在你的应用程序中的实际导航。
这节课程向你展示了通过如下如何针对优化导航:
确保所有布局控制对支持D-Pad。
对UI导航提供高度明显的反馈。
将布局控制放置便于访问。
处理D-pad导航
—————————————————————————————————————————————————————————
在电视中,用户使用D-pad或者方向键运行导航控制。这限制了上,下,左,和右的运动。为了构建完美的电视优化应用,你必须一个导航方案,使用它用户能快速学习如何在远程导航你的应用。
当你针对D-pad设计导航的时候,遵守这些原则:
确保D-pad能导航到屏幕上所有的可见控件。
对于滑动列表焦点,D-pad上/下键滑动列表和输入关键字选择列表中的表项。确保用户能在列表中选择一个元素,并且当一个元素被选择的时候列表持续滑动。
确保控件之间的运动是简单的和可预示的。
Android通常在布局元素之间自动处理导航顺序,所以你不需要额外做任何事情。如果屏幕布局使导航变得困难,或者如果你想用户以一种指定的方式在布局上移动,你可以为你的控制设置明确的导航。例如,为一个android.widget.EditText,定义获取焦点的下一个控件,使用:
<EditText android:id="@+id/LastNameField" android:nextFocusDown="@+id/FirstNameField"\>
下面的表格列出了所有可用的导航属性:
Attribute
Function
nextFocusDown
定义了当用户向下导航的时候下一个获取焦点的视图。
nextFocusLeft
定义了当用户向左导航的时候下一个获取焦点的视图。
nextFocusRight
定义了当用户向右导航的时候下一个获取焦点的视图。
nextFocusUp
定义了当用户向上导航的时候下一个获取焦点的视图。
为了使用这些明确的导航属性,设置在布局中其它控件ID值(android:id值)。你应该设置循环的导航顺序,以至于最后的控件指引焦点返回到第一个。
注意:你应该仅当系统应用的默认顺序不能很好的工作的时候,使用这些属性来修改导航顺序。
为焦点和选择提供清晰可见的说明
—————————————————————————————————————————————————————————
为在界面中所有的导航和可选择的元素使用合适的高亮颜色。这使得当使用D-pad导航的时候,用户知道这个控件当前是否获取焦点或者可选变得容易。并且,在你的应用中使用高度统一的计划。
Android提供Drawable State List Resourdes类实现被选中或者获取焦点控件的高亮效果。例如:
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 android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/button" />
在可获取焦点和可被选择的控件之间提供足够的填充,以至于在它们周围的高亮是清晰可见的。
设计便于导航
—————————————————————————————————————————————————————————
用户应该能通过几次D-pad的点击导航到任何UI控件。导航应该容易并直观的理解。对于一些不直观的动作,使用通过帮助按钮或者帮助栏触发的对话框,给用户提供书面的帮助。
预测用户想导航到的下一个屏幕,并提供一次点击导航到它。如果当前屏幕的UI非常稀疏,考虑使它成为一个多面板屏幕,使用Fragment来实现多面板屏幕。例如,看下面的多面板UI,大陆名称在左侧,并且在每个大陆很酷的地方列表在右侧。
上面的UIyou由三个Fragment组成,left_size_action_controls,continents和placs,正如下面它的xml布局文件所展示。这样的多面板UI使D-pad导航更容易,并是充分利用了电视屏幕的横向控件。
res/layout/cool_places.xml
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <fragment android:id="@+id/left_side_action_controls" android:layout_width="0px" android:layout_height="match_parent" android:layout_marginLeft="10dip" android:layout_weight="0.2"/> <fragment android:id="@+id/continents" android:layout_width="0px" android:layout_height="match_parent" android:layout_marginLeft="10dip" android:layout_weight="0.2"/> <fragment android:id="@+id/places" android:layout_width="0px" android:layout_height="match_parent" android:layout_marginLeft="10dip" android:layout_weight="0.6"/> </LinearLayout>
另外,注意上面的UI布局,动作控件是在左侧的一个竖直滑动列表,使得它们使用D-pad更容易访问。通常,对于使用横向滑动组件的布局,放置动作控件在左侧或者右侧,反之竖向滑动的组件。
- Android Developers:针对电视优化导航
- Android Developers:针对电视优化布局
- Optimizing Navigation for TV 优化电视导航
- Android Developers:优化布局结构
- Android Developers:处理在电视上不支持的功能
- [中英文对照]android Designing for TV(二) ------ Optimizing Navigation for TV 优化电视导航
- Android TV (四)(创建电视导航)
- 电视端Android应用内存优化
- 智能电视导航设计
- android针对对不导航栏遮挡问题解决办法
- Android的智能多媒体TVIX Xroid A1头-on针对智能电视
- (android developers)intent
- android developers website
- Android Developers Service
- Android 4.1 for Developers
- Android 4.1 for Developers
- Android Developers:StrictMode类
- Android Developers:Activities
- Asp.net MVC4 使用EF实现数据库的增删查改
- README.md
- WINDOWS任务管理器开发原理与实现
- wince下实现wifi无线网络的连接和配置(WLAN)
- [Oracle] ORA-00845: MEMORY_TARGET not supported on this system
- Android Developers:针对电视优化导航
- wordpress忘记密码 解决措施
- init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear、viewWillUnload区别
- 用VC++构建树视图控件
- 我的博客
- 模拟提交中multipart/form-data提交需要注意的问题
- Android学习指南
- 提取出Action公共的部分BaseAction
- 蜂蜜,最佳护肤保养品