Android轩辕剑之ActionBar之一

360°全景影像移动端类库--PanoramaGL 介绍         本指南将介绍一个PanoramaGL 0.1类库的简单用法,更多的细节请签出HelloPanoramaGL示例查看。 细节 1如何导入PanoramaGL类库? 1.1从源代码中导入 a下载PanoramaGL_0.1.zip或从代码仓库下载源代码 b如果你下载zip文件然后解压该文件 c在Eclipse中导入PanoramaGL项目: 点击“File”选择“ 阅读详情

传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229

        Action Bar是一个能用于确定应用程序和用户的位置,并提供给用户操作和导航模式的窗口功能。如果需要显著地展示当前用户的操作或导航,应该使用Action Bar,因为Action Bar为用户提供了一个统一的跨应用程序和系统的接口,并且针对不同尺寸的屏幕优雅的处理了Action Bar的适配。你可以通过ActionBar API来控制它的行为和可视性,这些API添加于Android 3.0(API级别为11)。 

1设计目的

1.1提供一个专门的空间来确定应用程序的标识和用户的位置。

        这是在应用程序图标或者是左侧的logo以及Activity的标题帮助下完成的。如果当前视图的导航标签被标识,例如当前选项卡选中,你可能会选择删除该Activity名称。

1.2提供统一的导航和视图细化到不同的应用程序中。

        Action Bar提供了内置选项卡导航来进行在fragments之间切换。它还提供了一个下拉列表中,可以来用来替代导航模式或用来完善当前视图(比如按照不同的标准来排序列表)。

1.3突出Activity的关键动作(如“搜索”、“创建”、“共享”,等),便于用户一个可预测的访问。

        对于关键的用户操作,你可以通过将item从选项菜单直接在操作栏定义为action items来提高访问速度。action items也可以提供一个“action view”,它用一个嵌入式widget来提供更多及时的动作行为。没有晋升为成action items的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用Action Bar中的溢出菜单按钮(当设备上不包含菜单按钮时)。

2添加Action Bar

        从Android3.0(API level 11)开始,Action Bar包括在所有Activity中使用的Theme.Holo主题(或是继承Activity的一个子类),这是当targetSdkVersion或minSdkVersion属性设置为“11”或更高时程序默认的主题。
<manifest ... >

    <uses-sdk android:minSdkVersion="4"

              android:targetSdkVersion="11" />

    ...

</manifest>

        在这个例子中,应用程序设置的最低版本的API Level为4(Android 1.6),但它目标API级别为11(Android 3.0)。通过这样设置,当应用程序运行在Android 3.0或更高版本上时,系统为每个Activity应用Holo主题,因此,每一个Activity都包含Action Bar。如果你想使用Action Bar的API,比如添加导航模式和修改操作栏样式,你应该设置minSdkVersion为“11”或是更高的版本。如果你想你的应用程序支持旧版本的Android,有很多办法可以让低版本的ActionBar的API的在支持API级别为11或更高的设备上,同时仍运行旧版本。

2.1移除Action Bar

        如果你不想为一个特定的Activity设置Action Bar,那么可以设置Activity主题为Theme.Holo.NoActionBar。
<activity android:theme="@android:style/Theme.Holo.NoActionBar">

2.2隐藏Action Bar

        也可以在运行时通过调用hide()隐藏Action Bar。
ActionBar actionBar = getActionBar();

actionBar.hide();
        当Action Bar隐藏时,系统会调整Activity的布局来填充所有可用屏幕空间。当然你可以通过调用show()显示Action Bar。 隐藏和删除Action Bar可能会使Activity重新调整布局。如果你的Activity经常隐藏和显示Action Bar(如在Android的画廊应用),你可能想用覆盖(Overlay)模式。覆盖模式布局在Activity的上层,而不是在同一层下的Activity的顶部。这样,你的布局可以在Action Bar隐藏和重新出现时保持不变。要启用覆盖模式,创建Activity主题并且将android:windowActionBarOverlay属性值设置为true。注意:如果你有一个自定义的的Activity主题并且想在其中删除Action Bar,然后把android:windowActionBar样式属性设置为false。,那么,由于你移除了Action Bar正在使用的主题,那么getActionBar()方法将返回null,当你和系统调用此方法的时候就会出现问题。

3添加Action Items

        有时你可能想让用户从选项菜单(options menu)中直接访问item。要做到这一点,你可以声明该菜单项为Action Bar中的一个“action item”。一个“action item”包括一个图标和/或文字标题。如果一个菜单项不作为一个“action item”,系统会将菜单项放置在溢出菜单。溢出菜单显示设备菜单“按钮(如果设备提供)或在操作栏中的按钮(如果设备不提供”菜单“按钮)。首次启动Activity时,系统通过在activity调用onCreateOptionsMenu()方法来填充action bar和溢出菜单(overflow menu)。在菜单开发指南中讨论的,它是在这个回调方法,你应该在inflate一个XML定义菜单项的菜单资源。
@Override

public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();

    inflater.inflate(R.menu.main_activity, menu);

    return true;
}


        在XML文件中,你可以通过声明android:showAsAction="ifRoom" 让菜单item成为action item。通过这种方式,当有可用空间时,菜单项才会出现在action item的快速访问栏。如果没有足够的空间,该item将出现在溢出菜单。如果你的菜单项同时提供标题和图标--同时具有Android:titile和android:icon属性,action item默认只会显示图标。但如果你想显示文字标题,必须添加“withText”到Android:showAsAction属性中。

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/menu_save"

          android:icon="@drawable/ic_menu_save"

          android:title="@string/menu_save"

          android:showAsAction="ifRoom|withText" />

</menu>
        注:“withText”值应用用于一个Action Bar的提示文本出现。但如果一个图标无法使用或者空间受限,action bar的标题可能无法显示。
        当用户选择一个action  item,activity调用一个OptionsItemSelected()方法,通过android:id属性获取的ID值来接收在选项菜单中的所有item中相同的回调。 这一点很重要,你总是为每个菜单项定义android:title,你不在显示的action item中声明标题的理由有三个:
如果在action bar中没有足够的空间提供给action item,该菜单项出现溢出“菜单中,而且只有标题显示。
屏幕阅读器为视障用户读出菜单项的标题。
如果action item只有图标,用户可以长按item显示的工具提示,显示action item的标题。
        Android的图标始终是可选的。
        你也可以定义一个item“always”为action item,以避免当空间有限时被放到溢出菜单中去。但在大多数情况下,不应该设置“always”这个值来强制使一个item出现在action bar中。要注意的是过多的action item,会导致创建出来的UI杂乱不堪,并且在窄屏幕的设备上会出现布局问题。最好使用“ifRoom”,在没有足够的空间时,应允许系统将它移动到溢出菜单。

3.1选项你的Action items

        你应该应通过评估的几个关键特性,仔细从选项菜单中选出action item。在一般情况下,每个action item,至少有以下需求之一:
3.1.1常用性:用户70%的时间需要访问或需要连续多次使用。常用性例子:在短信息应用程序的“新信息”和Google Player中的“搜索(Search)”。
3.1.2重要性:用户能够很容易地发现,或者如果不经常使用,在少数情况用户确实需要它的时候,可以毫不费力地执行,这一点是很重要的。重要性例子:在 Wi-Fi设置“加入网络”和在画廊(Gallery)应用程序中“切换到相机”。
3.1.3典型性:这是一个通常在类似的应用程序的action bar中提供的action,因此,用户希望自己找到它。典型性例子:电子邮件应用中的“刷新”和电话本应用中的“新的联系人”。
        如果你认为四个以上菜单项可以合理的作为action item,那么你应该仔细考虑其相对等级的重要性,并尽量设置不超过四个的菜单项的action item(这样设置“ifRoom”这个值,在一些空间有限的小屏幕上,系统把一些菜单项放到溢出菜单背面)。即使是宽屏幕上,你也不要创建一个杂乱的UI的action item,冗长得看起来像一个桌面工具栏,应该要使action item的数量保持到最低限度。 此外,下列行为不应该出现行动项目中:类似设置,帮助,反馈,或查找,始终将这些放在溢出菜单中。

3.2使用分离(split)的Action Bar

        当你的应用程序运行在Android 4.0系统(API Level 14)或更高时,还有一个额外的模式可称action bar为“split action bar”。当在一个狭窄的屏幕运行启用split action bar时,会在屏幕的底部出现一个action bar显示所有action item。split action bar用来分开action item,确保分配合理数量的空间来在一个狭窄的屏幕上显示所有的action item,而空间留给顶端的导航和标题元素。 使用 split action bar,只需添加uiOptions=“splitActionBarWhenNarrow”,到你的<activity>或<application> manifest中。

        要知道Android在各种不同的方式,根据当前的屏幕大小调整action bar的外观。采用split action bar只是一个选项,您可以启用允许action bar进一步为不同的屏幕尺寸,优化用户体验。这样做,你也可以让action bar可以折叠成主要的action bar的导航标签(navigation tabs)。也就是说,如果你在你的action bar中使用的导航标签,一旦action items狭窄的屏幕上分离,导航标签可以融入的主要action bar,而不是被分隔成的“折叠的action bar”。具体来说,如果你禁用action bar中的图标和标题(setDisplayShowHomeEnabled(false)和setDisplayShowTitleEnabled(false)),然后将主要action bar的导航标签相互重叠。


如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现 传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         上周为360全景项目引入了图片缓存模块。因为是在Android4.0平台以上运作,出于惯性,都会设计之前查阅相关资料,尽量避免拿一些以前2.3平台积累的经验来进行类比处理。开发文档中有一个BitmapFun的示例,仔细拜读了一下,虽说围绕着Bitmap的方方面面讲 阅读详情

相关推荐

360°视频的视频编解码器性能评估中的常见测试条件和软件参考配置

这几天一直阅读提案,发现状态不是很好,就把几篇我觉得很有用的提案摘录到这里。带(*)标识的地方是我还没懂的地方= =、 首先这篇提案是JVET common test conditions and evaluation procedures for 360° video 1、Introduction 360°视频通用测试条件是在well-defined(*)的环境中进行实验,并且简化实验结果

不是他人太努力,只是自己努力不够罢了 4189

Android轩辕剑之ActionBar之四

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         由于本框架使用的是JSF+Spring+Hibernate的架构,因此WEB-INF路径下几个配置文件web.xml以及applicationContext.xml,faces-config.xml是比较重要的。Web.xml定义了使用的框架faces-

leverli的专栏 3558

Matlab PolySpace 静态分析实战:从零搭建嵌入式代码安全防线

本文详细介绍了如何使用Matlab PolySpace进行嵌入式代码静态分析,从环境搭建到实战配置,帮助开发者提前发现内存溢出、未初始化变量等潜在缺陷。通过案例分享和进阶技巧,展示如何提升代码安全性和可靠性,特别适合汽车ECU、医疗设备等安全关键系统开发。

weixin_33701617的博客 602

Android轩辕剑之ActionBar之三

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         架构代码部分主要的包结构是Backing、Entity、Dao、Service这四个部分。这四个部分的名称比较明确,很好的划分了层次内容。其中Backing是JSF中的backingbean,处理表现层。Service是业务层,实现业务操作。Entity

leverli的专栏 3633

4.2 结构翻模

结构翻模功能可以将DWG文件中的二维图线对象:轴网、墙、柱、梁、基础、房间和面积等快速转换成Revit模型对象,翻模速度快,准确率高。与先前的模盒翻模功能不同,结构翻模不再需要在AutoCAD中提取模型的图线,所有操作在Revit均可完成。(1)翻模程序适用于钢筋混凝土结构的平法DWG文件。(2)将平法中所表示的轴网线,轴网文字,结构柱,梁,结构墙在Revit 中重新建出来。(3) 模盒可以翻出连...

fishbuaa的专栏 1797

文献阅读:SAR像素偏移的性能改进An Improvement of the Performance of SAR Offset Tracking Approach

像素偏移追踪POT文献阅读

weixin_56301271的博客 342

Android轩辕剑之ActionBar之二

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         WebApp应用框架主要负责各类服务组件以及业务系统的构建,即内容提供者。WebApp框架主要由展现层,业务层,控制层,数据持久层组成。         整套设计思想中,从数据建模出发采用的是Top-Down设计思路;页面构建采用的是Bottom-Up组装

leverli的专栏 3971

传输线的特征阻抗

信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输入端或输出端处于阻抗匹配状态,简称为阻抗匹配。否则,便称为阻抗失配。有时也直接叫做匹配或失配。指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。- 对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;

学海无涯的专栏 4465

Android定制组件之图文展示之中国好声音

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         今天我们学习如何自定义TextView组件,让它既能显示文本,又能显示图像,达到“图文并茂”的效果。这种情景在新闻、文章、彩信内容中很常见。下面给出该场景的案例: 一、案例技术要点 1.创建attrs.xml文件用于设置自定义组件的属性、类型和样式。

leverli的专栏 1万+

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

3.当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。2.RTMP协议中基本的数据单元称为消息(Message)。下载地址:http://nginx.org/download。下载 rtmp模块 到nginx 模块下。安装nginx 和 rtmp模块。(1). linux 环境准备。下载nginx安装包。使用 vcl 播放流。

weixin_45397344的博客 2276

ArcMap|时空地理加权回归(GTWR)

ArcGIS的GTWR插件下载地址:https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Valid_till_Dec_31_2022 更详细的操作参考: https://www.bilibili.com/video/BV1fR4y1M7xB?spm_id_from=333.999.0.0 https://blog.youkuaiyun.com/weixin_40008135/article/details/112693520 双击“GTWR_Be

个人学习笔记 1万+

让你的Android应用与外部元素互动起来

一个Android应用程序通常有几个activities。每个act显示一个用户接口允许用户执行一个指定的任务。用户从一个act到另一个act,你的App必须使用一个Intent对象来定义你App想做些什么事。当你通过一个Intent调用startActivity()方法时,系统会使用Intent来鉴定和启动合适的App组件。一个Intent可以明确的启动一个特定的组件(如一个特定的act实例)或

leverli的专栏 1万+

如何用DeepSeek写年底工作总结?——从入门到精通的全流程指南

AI助手DeepSeek如何高效撰写工作总结 摘要:本文介绍如何利用DeepSeek智能AI助手高效完成工作总结写作。工作总结具有结构固定、语言规范、内容数据化三大特性,而DeepSeek的结构化生成、风格适配、数据整合和迭代优化四大核心能力与之完美匹配。文章提出"准备-搭架-填充-优化"四步工作法:1)精准输入岗位、时间范围等核心信息;2)先搭建逻辑清晰的提纲框架;3)分模块填充具体内容,突出数据与案例;4)通过风格润色和细节补充进行优化。通过合理运用多模态材料处理能力,DeepSee

通俗易懂学IT 288

Android倚天剑之Notification之动感地带

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         前

leverli的专栏 9935

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android凝碧剑之CalendarView之万年历

传送门 ☞ Android兵器谱 ☞ http://blog.youkuaiyun.com/leverage_1229 凝碧剑         张召重一挺凝碧剑,纵到陈家洛身前,说道:“你年纪轻轻,居然有这身功夫,你师父是谁?”。。。周绮拿了凝碧剑细看,找了几柄纯钢旧刀剑,一剑削下,应手而断,果然锐利无匹。徐天宏在一旁微笑注视。         今天我们学习如何利用Android平台“凝

leverli的专栏 7896

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android昆仑镜之Fragment

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 紫衫龙王

leverli的专栏 7554

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

使用严苛模式打破Android4.0以上平台应用中UI主线程的“独断专行”

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         已经有

leverli的专栏 7134

Android倚天剑之Notification之城管三千

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229         如果说足球是和平年代的战争,那么城管呢?伟大的人民曲艺家郭德纲先生曾经这样评价:借我城管三千,我能让世界和平!可见在当今社会中城管的威慑力有多大,尤其是中国的城管,你懂的^_^。本文欲借城管之名来引出Android平台对通知的管理也是十分强大的。话说

leverli的专栏 6194

Android常用布局之LinearLayout之简易计算器

传送门 ☞ Android兵器谱 ☞转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 一、布局(Layout)         简单的说,Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在AndroidManifest.xml中指定一个主的Activity,如下设置:

leverli的专栏 5928
上一篇: 使用Android OpenGL ES 2.0绘图之六:响应触摸事件
下一篇: Android轩辕剑之ActionBar之二
innovation
博客等级 码龄14年 251粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值