动作栏(Action Bar)

在安卓3.0以后,动作栏(Action Bar)这个组件使安卓系统的布局变得非常轻松。它一般位于屏幕的顶部,提供了以下几点主要的功能:783f淮安掼蛋网下载

  • 以图标形式显示程序中最主要的几项功能,使大家一眼就找得到,例如“新建”、“搜索”等常用功能。
  • 提供一种大家都熟悉的切换页面的功能,例如按钮式切换、左右滑动切换。
  • 将不常用的快捷方式隐藏在一个可展开的按钮中,使布局从此远离凌乱。
  • 为你的程序的视觉识别提供了专用的空间,用于放置程序的图标,名称等。

如果你是一个安卓程序的设计新手,那么学会用动作栏(Action Bar)将会是最重要的技能!以下为你展示了动作栏的详细功能与用法,你将会学习如何设计出一个符合用户使用习惯的、流畅的应用程序。

一般性布局


四个区域:负责不同的功能:

  1. 1  程序图标区域

    程序图标是你的整体形象之一,可以使用不同的图标。但要记住,如果你的程序页面不是在程序的主页面(顶层),那么要放置一个导航的指示在程序图标的左边,好让用户能够返回上一级的页面。

    例:左边的围标无导航指示;右边的图标有导航指示,能够返回上一级。
  1. 2  页面切换区域

    如果你的程序有不同的页面,这个区域会用于切换页面。上图中第2区域就是一个下拉式的页面切换栏。如果你的程序只有一个页面,那么这个区域可以用于显示内容的标题。

  2. 3 动作按钮

    程序功能的快捷方式,以图标显示。

  3. 4 更多的功能图标

    表示程序有更多的功能隐藏于此,如果要使用这些功能,点击这个图标即可展开。

适应不同的屏幕方向与屏幕尺寸


设计用户界面布局有一点是千万不能忘记的,就是屏幕的方向与尺寸。如果没有考虑这一点,程序的体验就会大打折扣,甚至出现用户极其讨厌的强行退出(Forced Closed)!就动作栏来说,你可以设计出一个副动作栏来适应不同方向,不同尺寸的屏幕。 
    * 当然在某种情况下,你可以通过编程来强制程序的方向与布局永不更改,但一个优质的程序通常不这么设计。

例:在竖屏显示的情况下,有一个副动作栏出现在屏幕的下方。而在横屏显示状态下,因为主栏的空间足够大,没有出现副栏。.

副动作栏能优化你的布局


你可以将动作栏分成三个部分:

  1. 主动作栏 (图中标注1)
  2. 顶部栏(图中标注2)
  3. 底部栏(图中标注3)

If the user can navigate up the hierarchy from a given screen, the main action bar contains the up caret, at a minimum.   如果用户的当前页面有上一级,那么在主动作栏就会包含一个小图标,表示用户可以返回上一级(见图例的左上角的向左的小箭头)

如果你想用户能够轻松切换视图,可以使用两个工具:选择器和标签。(图例中的TAB ONE、TAB TWP、TAB THREE就是三个标签,用户只要点击就能切换到不同的视图)

如果要显示快捷方式,可以在主动作栏或者副动作栏上放上相应的图标。想显示更多的图标,可以用图中标注3的那个类似省略号的图标来显示折叠式的更多选项。

动作按钮的设计


动作栏按钮包含了程序的最重要功能。想想哪一个功能会被用户最经常使用,然后按次序排列它们。最重要的图标显示出来,不那么重要的图标放在折叠区里。千万不要出现那些占了而没有实际功能的图标。那会让用户讨厌!在测试时记得删除这些没有意义的图标。

一些动作栏的图标示例(来自Gmail邮件程序)

想得到一个好的排序,可以参考以下的规则:

常用

  • 在动作栏的这些图标,用户会使用7-10次以上吗?
  • 用户会连续使用多次吗?
  • 如果不使用这个快捷方式,用户会觉得很繁琐。

重要

  • 你想每个用户都知道这个功能,因为它是程序的一个卖点。
  • 它真的是用户经常需要用到的而且非常有效率的吗?

典型

  • 在类似的程序中,它被列为重要的功能吗?
  • 如果放在隐藏栏里,用户会抱怨吗?

如果它符合常用、重要和典型的描述,将它放在动作栏的可视区域里,否则放在隐藏栏里。

我们提供了一些已经定制好的常用动作栏图标供大家使用。里面的图标适合用于深色主题与浅色主题,还有一些可修饰的、按需而定制的图标,还有一些适合Adobe® Illustrator®使用的源文件。
下载地址:

http://developer.android.com/downloads/design/Android_Design_Icons_20120814.zip

隐藏式动作栏

隐藏式动作栏提供了一个可以放置不经常使用的图标的地方。那个像省略号的图标,只会出现在一些没有硬件式菜单键的设备上。如果设备有硬件式菜单键,那么隐藏的图标只会在当硬件菜单键被按下的时候显示。

隐藏式动作图标一般在动作栏的右边,形状类似竖向的省略号

那么动作栏会显示多少个图标?它由以下的规则来决定:

  • 在主动作栏上,图标占主动作栏宽度的50%。在底部的副动作栏上,图标可以占满。
  • 屏幕的宽度用密度独立像素(dp)来计算,以下是图标的数量与dp的关系:
    • 少于 360 dp = 2个图标
    • 360-499 dp = 3个图标
    • 500-599 dp =4个图标
    • 600 dp或以上 =5个
    • 下图是一些主要设备的图标数:

在表格最右边的Example(示例)一列中,"o" 代表一个图标, "=" 代表一个隐藏式图标。

共享数据

当你的程序提供共享功能时,可以用一个共享功能图标来快速分享,它通常位于主动作栏靠右,是一个选择器,方便用户发送到相应的程序。如下图所示:

图例:相册程序在主动作栏上提供了一个共享功能的图标,点击它会弹出可以选择发送到哪一个程序去。

上下文动作栏——随着你的选择而变化


上下文动作栏(contextual action bar)是一个临时性质的动作栏显示区域,当你在主屏幕选择了相应的内容时,它会出现一些与选择有关的文字或者图标,方便你清晰你选择了什么,选择好后能做什么。

图例:浏览器(左图)与Gmail(右图)中的上下文动作栏

当你用手指长按着列表中的一个项目,上下文动作栏就会出现。

此时用户可以进行如下操作:

  • 选择更多的选项
  • 触摸选择动作栏上的一个功能(当触摸后,上下文动作栏区域会消失,变回原样)
  • 用后退键或者左上角的小勾使上下文动作栏区域消失,同时高亮的已选择项也会同时变回原样。

在编程时,你可以选择哪些图标会随上下文动作栏区域同时出现,以方便用户操作。

设计动作栏的原则


当你使用副动作栏时,请思考以下问题:

切换视图的功能有多重要?

如果切换视图功能很重要,那么请用标签(TAB)或者选择器(Spinner)来实现。

哪些功能需要显示在动作栏,哪些功能需要放在隐藏式动作栏。

用常用、重要和典型三个指标来衡量哪些功能图标该出现,哪些该隐藏。如果屏幕大小限制了主动作栏,则使用副动作栏以放置更多的动作图标。

什么时候需要不间断显示的上下文信息?

有时候,需要将一些与上下文有作的信息长期显示在屏幕上,例如信息程序的未读信息,或者音乐播放器的播放进度。仔细考虑如何设置动作栏才合理。

版权声明:英文原版版权由android.com所有,本中文翻译版版权由姚志浩所有,欢迎转载。

安卓开发 中文教程(14):新手福音——动作栏(Action Bar)相关推荐

  1. 安卓开发 中文教程 (12) --程序的结构

    接下来,你要叫苦连天了,各种眼花眼疼流眼泪.因为我们已经进入到本课程的核心部分!  今天开讲--程序的结构!783F淮安掼蛋网下载 随书附送一个智力测试,本文看十遍后能理解的,智商110,看九遍能理解 ...

  2. 安卓开发入门教程-UI控件_EditText

    什么是EditText EditText是用于进行文本输入的UI控件. 基础样例 1.普通输入 效果图 代码 <EditTextandroid:layout_width="wrap_c ...

  3. android 开发桌面应用程序,安卓开发基础教程-Android多界面应用程序开发

    开篇 本文阅读需10分钟,简单易上手,属于安卓开发教程的基础部分. 建议精读,深刻理解大意.多做实践.多写代码. 本文章由做全栈攻城狮原创首发. 同名公众号已开启,官网www.8z5.net. 本套教 ...

  4. Python-EEG工具库MNE中文教程(14)-Epoch对象中的元数据(metadata)

    目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 本案例演示使用Epochs元数据.关于Epochs数据结构:可以查看文章Python-EEG工具库MN ...

  5. 安卓开发入门教程-安装开发工具(Android Studio)

    本文简介 搭建Android Studio安卓开发环境. 目标用户 安卓初学者 操作步骤 一.下载Android Studio 下载迅雷加速下载(网速快的,直接略过本步骤).预计耗时:1分钟 在浏览器 ...

  6. Android 安卓开发入门教程,

    Android开发使用控件入门 V6.0版 一.环境搭建: 1. 下载Android SDK (1) http://developer.android.com/sdk/index.html,该网址访问 ...

  7. 安卓开发入门教程!安卓Apk安装过程,源码+原理+手写框架

    首先,讲讲为什么我们要讲JAVA的语言进阶,从整体来讲,Java和Android的区别在于Android程序是基于组件和配置的,而且Android开发以Java语言为开发工具,表面上看他们有点同宗不同 ...

  8. PyTorch中文教程 | (14) 基于注意力机制的seq2seq神经网络翻译

    Github地址 在这个项目中,我们将编写一个把法语翻译成英语的神经网络. [KEY: > input, = target, < output]> il est en train d ...

  9. android 获取控件高度_安卓开发入门教程UI控件_ImageView

    什么是ImageView ImageView是用于显示图片的UI控件. 基础样例 1.展示本地图片 效果图 代码 <ImageViewandroid:layout_width="wra ...

最新文章

  1. ExtJs学习笔记(5)_Ajax示例
  2. Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)...
  3. 质数和分解(动态规划)
  4. bp神经网络预测_股指期货价格变动趋势往往反映的是股票价格的走势,因此BP神经网络对股指期货价格的准确预测就是对股票价格的准确预测。...
  5. 禁止复制粘贴_网页禁止你复制粘贴?新同事教我这三招,全网内容随我复制
  6. 关于EPOLL的ET和LT模式的深入理解
  7. 黑马vue实战项目-(七)订单管理页面的开发
  8. 基于C# 和Access数据库的电影院管理系统
  9. 关于密钥和密钥管理的常见问题及解答
  10. 从零开始做单相逆变电源(软件)
  11. 购物小票的巧妙新设计
  12. windows进程管理器_系统变慢?WMI进程导致的CPU高占用解决
  13. 百万点赞怎么来?Python批量制作抖音的卡点视频原来这么简单!
  14. python牛顿法求方程的根_python计算方程式根的方法 如何用python计算三元方程
  15. tomcat springmvc 图片404不显示
  16. 高通获得许可供应芯片,依然难阻华为被小米取代
  17. 使用oracle开发的配置
  18. 揭秘阿里巴巴神奇的人物抠图算法内幕
  19. 【清华集训2017模拟】Catalan
  20. go使用es(elasticsearch)

热门文章

  1. linux管道符、重定向与环境变量。
  2. spring batch (二) 元数据表
  3. avue字典-引入网络字典请求方式的配置
  4. 五分钟了解身体作息规律
  5. 编程乐趣:分享几个自己常用的工具
  6. Vue3 子组件向父组件传值的方法
  7. 【Python】实现线程池
  8. 软考高级信息系统项目管理师系列之十七:项目人力资源管理
  9. Vue项目打包部署后首页空白的问题
  10. Oracle学习笔记(三)——排序分组