Android 应用在重新定义现代计算在大屏幕上的呈现方式方面发挥着重要作用。但是,仅在 Chromebook 上运行您的移动应用并不会带来 为用户提供最佳体验。
本页详细介绍了您可以用来量身定制体验的一些方法 笔记本电脑和可转换外形规格的设备。如需详细了解如何测试您的应用在这些设备上的兼容性,请参阅我们全面的测试列表。
利用对自由式多窗口模式的支持
ChromeOS 上的 Android 应用实现包括基本的多窗口模式 联系。Android 并非总是占据整个屏幕,而是会呈现 ChromeOS 上的应用转移到更适合这些设备的自由式窗口容器中。
用户可以调整包含 Android 应用的窗口的大小,如图 1 所示。为了确保自由格式的窗口能顺畅地调整大小并显示 将其全部内容呈现给用户,请阅读窗口管理中的准则。
![](https://developer.android.google.cn/static/images/topic/arc/resizable.png?authuser=0000&hl=da)
图 1. 可调整大小的应用窗口。
您可以遵循以下最佳做法,提升应用在 ChromeOS 上运行时的用户体验 做法:
- 在以下代码中正确处理 activity 生命周期: 多窗口模式,并确保持续更新界面,即使您的应用不是 最顶端的聚焦窗口。
- 确保每当用户调整窗口大小时应用都会适当地调整其布局。
- 通过指定应用的启动大小来自定义其窗口的初始尺寸。
- 请注意, 方向 应用根 activity 的所有 activity 都会影响其所有窗口。
自定义顶栏颜色
ChromeOS 使用应用主题为显示在应用顶部的顶栏着色。
,当用户按住窗口控件和返回按钮时显示。为了让
为 ChromeOS 打造精美且量身定制的应用,
colorPrimary
如果可能的话
colorPrimaryDark
值。
colorPrimaryDark
用于为顶栏着色。如果仅
已定义 colorPrimary
,ChromeOS 会在
。如需了解详情,请参阅样式和主题。
支持键盘、触控板和鼠标
所有 Chromebook 都带有物理键盘和触控板,部分 Chromebook 还配备触摸屏。有些设备可以从笔记本电脑转换成平板电脑。
在 ChromeOS 应用中,支持通过鼠标、触控板和键盘输入 以便用户在没有触摸屏的情况下也能使用该应用。许多应用已支持鼠标和 无需额外操作。不过,最好还是根据 以及支持和区分 鼠标和触控输入。
请确保:
- 所有目标都可以通过鼠标点击。
- 所有可通过触摸来滚动的界面都可以通过鼠标滚轮来滚动,如 图 2.
- 在实现悬停状态时会认真判断,以便进行改进 不让用户感到无所适从的界面探索,如图 3 所示。
![](https://developer.android.google.cn/static/images/topic/arc/scroll_on_mousewheel.png?authuser=0000&hl=da)
图 2. 使用鼠标滚轮进行滚动。
![](https://developer.android.google.cn/static/images/topic/arc/hover_states.png?authuser=0000&hl=da)
图 3. 按钮悬停状态。
在适当情况下,区分鼠标输入和触控输入。对于 示例、触摸和按住某项内容可能会触发多选界面,而 右键点击同一项目可能会触发选项菜单。
自定义光标
自定义应用的鼠标光标,以指示用户界面中的哪个元素
互动方式和方式您可以调用 setPointerIcon()
方法来设置要在用户与视图交互时使用的 PointerIcon
。
在您的应用中,显示以下所有项:
- 为文本显示 I 型指针
- 在可调整大小的层边缘显示大小调整手柄
- 为可以平移或拖动的内容显示张开和闭合的指针 执行点击并拖动手势
- 表示正在处理的旋转图标
PointerIcon
类提供了可用于实现自定义光标的常量。
键盘快捷键和导航
由于每台 Chromebook 都配有物理键盘,因此请提供热键以 提高用户的工作效率例如,如果您的应用支持 要打印,可以使用 Ctrl + P 打开打印对话框。
同样,使用标签页导航处理所有重要的界面元素。 这对于无障碍功能尤为重要。为了符合无障碍功能标准 所有界面 Surface 都必须有明显且符合无障碍要求的聚焦 如下图所示:
![](https://developer.android.google.cn/static/images/topic/arc/transversal_tabbing.png?authuser=0000&hl=da)
图 4. 横向 Tab 键导航。
![](https://developer.android.google.cn/static/images/topic/arc/hover_controls.png?authuser=0000&hl=da)
图 5. 将滑动手势替换为悬停光标时出现的控件。
确保为核心实现键盘或鼠标替代方案 隐藏在触摸专属交互之下的功能,例如触摸和按住操作 滑动或其他多点触控手势。例如,您可以 按钮。
如需详细了解键盘、触控板和鼠标支持,请参阅 <ph type="x-smartling-placeholder"></ph> 大屏幕上的输入兼容性。
进一步增强用户输入
为了让您的应用实现桌面级功能,请考虑以下事项: 以工作效率为导向的输入。
上下文菜单
Android 上下文菜单,这是另一个加速器,可将用户引导至 点击鼠标或点击触控板的 辅助按钮或通过触摸和:
![](https://developer.android.google.cn/static/images/topic/arc/contextual_menu.png?authuser=0000&hl=da)
图 6. 右键点击时显示的上下文菜单。
拖放
构建拖放互动(如下图所示) 它可以带来高效直观的工作效率 应用功能如需了解详情,请参阅拖放。
![](https://developer.android.google.cn/static/images/topic/arc/drag_and_drop.png?authuser=0000&hl=da)
图 7. 在文件树界面中拖放。
触控笔支持
触控笔支持对于绘图和记事应用至关重要。提供增强型 通过实现互动来支持配备触控笔的 Chromebook 和平板电脑 根据触控笔输入的使用进行定制
在设计触控笔交互功能时,应考虑不同触控笔硬件的潜在差异。有关 触控笔 API,请参见 大屏幕上的输入兼容性。
让布局自适应
请充分利用应用可用的屏幕空间, 其视觉状态(全屏、纵向、横向或窗口化)。一些示例 良好的空间使用情况包括:
- 显示应用架构。
- 将文本长度和图片大小限制为最大宽度。
- 在应用的工具栏中更好地利用屏幕空间。
- 改为让应用适应鼠标操作,从而改进界面功能的位置 基本操作
- 优化视频和图片的大小,设定一组最大宽度 和高度,并最大限度地提高可读性和可扫描性。
- 实现自适应列系统。有关详情,请参阅自适应 布局网格。
- 根据需要使用列系统调整界面大小并修改界面。 尽可能避免打开新窗口。
- 移除或降低水平滚动组件的重要性。
- 避免使用全屏模态界面。使用内嵌界面,如进度指示器和 提醒。
- 使用经过改进的界面组件,例如时间和日期选择器、文本字段以及 专为鼠标、键盘和大屏幕设计的菜单。
- 使用直接修改、其他列或模态界面,而不是新 activity 适用于中小型编辑功能。
- 移除或修改悬浮操作按钮 (FAB),提升键盘体验 导航。默认情况下,在横向 Tab 键操作中,FAB 的位置最后 订单。而应该先创建,因为这是主要操作; 将其替换为另一个更高级别的方式
![](https://developer.android.google.cn/static/images/topic/arc/responsive_layout.png?authuser=0000&hl=da)
图 8. 手机和桌面设备尺寸的屏幕上响应式布局的模拟。
更改导航模式
系统级返回按钮是从 Android 手持设备继承而来的一种模式,这种模式不太适合桌面环境。
随着您的应用越来越多地针对笔记本电脑环境定制化,不妨考虑 导航模式不再强调返回按钮。让 应用通过提供应用内返回来处理自己的历史记录堆栈 按钮、面包屑导航或其他退出路径(如关闭或取消按钮) 大屏界面的一部分
您可以通过以下方法控制应用是否在窗口中显示返回按钮:
为容器设置偏好设置
<activity>
标记前面。设为 true
会隐藏
返回按钮:
<meta-data android:name="WindowManagerPreference:SuppressWindowControlNavigationButton" android:value="true" />
解决相机预览图像的问题
当应用只能在纵向模式下运行但用户在横向屏幕上运行它时,可能会出现相机问题。在这种情况下,预览或 捕获的结果可能未正确旋转。
兼容模式会改变系统在 ChromeOS。这有助于防止摄像头在错误使用时出现的问题 屏幕方向模式如需启用兼容模式,请满足以下条件:
- 目标平台至少为 Android 7.0(API 级别 24)。通过 最低 SDK 级别可以更低。
- 使应用可调整大小。
处理设备设置
对于在 ChromeOS 上运行的应用,请考虑采用以下设备设置。
调节音量
ChromeOS 设备是固定音量设备:播放声音的应用拥有自己的权限 音量控制。遵循 有效 固定音量设备”。
调节屏幕亮度
您无法在 ChromeOS 上调整设备亮度。对 system settings
和 WindowManager.LayoutParams
的调用会被忽略。
其他学习资料
如需详细了解如何针对 Chromebook 优化 Android 应用,请参阅以下资源:
- 阅读 Android 开发者博客中的将 Android 应用推广到 Chromebook 一文。
- 观看 2017 年 Google I/O 大会的适合 Chromebook 和大屏设备的 Android 应用会议视频。