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的方方面面讲 阅读详情

相关推荐

从IMU到机器人定位:手把手教你用ESKF(Error-State Kalman Filter)搞定传感器融合

本文详细介绍了如何使用ESKF(Error-State Kalman Filter)实现IMU与多传感器的融合,解决机器人定位中的积分漂移问题。通过代码示例和Gazebo仿真案例,展示了ESKF在自动驾驶和移动机器人中的核心应用,包括误差状态建模、预测过程实现和观测更新策略,帮助开发者掌握这一高效滤波技术。

weixin_33275503的博客 285

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

Vectorless dynamic动态功耗分析——Voltus

power 计算工具会根据设计信息和用户提供的activity和switching约束来生成虚拟的worst-case的power vector,难点在于哪些instances视为switching,在没有仿真的前提下如何确定开关的时间,使用timing文件(TWF)

qq_44347276的博客 2790

Android轩辕剑之ActionBar之三

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

leverli的专栏 3633

刷题单向链表

实现一个数据结构,维护一张表(最初只有一个元素 11)。接下来 qq 行,每行表示一次操作,操作具体间题目描述。a[i] 里面放的是下一个元素,为0代表链表结束。如单链表1->4 -> 2->3->0用数组表示是。对于每个操作 2,输出一个数字,用换行隔开。第一行一个整数 qq 表示操作次数。

power的专栏 1714

手把手教你用UNet实现轨道缺陷检测(附RSDDs数据集下载与完整代码)

本文详细介绍了如何使用UNet模型实现轨道缺陷检测,包括RSDDs数据集的下载与处理、UNet架构的改进与优化、训练策略设计以及模型部署的全流程。通过实战案例,展示了如何利用深度学习技术提升工业质检效率,特别适合从事工业缺陷检测和图像处理的开发者参考。

dapp9builder的博客 749

Android轩辕剑之ActionBar之二

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

leverli的专栏 3971

078、镜头阴影校正:LSC算法原理与标定优化

文章摘要 镜头阴影校正(LSC)是手机影像系统中的关键技术,用于解决镜头渐晕效应导致的画面边缘暗角问题。本文详细分析了LSC算法的核心原理,包括非均匀网格划分、双线性插值等关键技术点,并揭示了标定流程中的常见陷阱(光源均匀性、灰卡反射特性、温度漂移)。文章还深入探讨了增益计算的工程实现细节,以及实际调优中的关键考量因素(色差校正、动态场景适应等)。作者结合15年经验,给出了包括验证方法、网格参数设计、产线标定等实用性建议,强调LSC算法应与光学设计协同优化,才能达到最佳效果。

sundong_81的博客 42

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

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

leverli的专栏 1万+

电机控制的智慧之眼:全面解析FOC状态观测器

摘要:本文深入探讨磁场定向控制(FOC)中的状态观测器技术,重点分析其在无传感器电机控制中的关键作用。文章详细介绍了滑模观测器(SMO)、扩展卡尔曼滤波(EKF)、龙贝格观测器和高频注入法等主流观测器的工作原理、技术特点及适用场景,其中SMO因结构简单、鲁棒性强成为当前主流方案。同时阐述了观测器与锁相环(PLL)结合的工程实践方案,并针对不同应用场景提供了观测器选型建议。文章还探讨了启动问题处理、参数敏感性等工程挑战的解决方案,以及混合观测器、AI应用等未来发展趋势。这些观测器技术使电机系统在无机械传感器情

汽车软件开发 275

随机优化 (Stochastic Optimization) 算法详解及案例分析

随机优化是一种用于处理包含随机变量的优化问题的方法。其目标是通过考虑随机变量的概率分布,找到一个在期望意义下最优的解。

闲人编程的博客 4184

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

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

leverli的专栏 1万+

多摄像头场景下 ISP 的同步与调度机制实战解析

在智能手机多摄系统中,主摄、广角、长焦、微距等摄像头的协同工作能力直接决定了影像系统的体验上限。而支撑这一能力的核心之一,正是 ISP 的同步与调度机制。ISP 需要处理多个 Sensor 的输入流、统一时序、资源仲裁、并发调度,并支持在不同模式间快速切换(如预览 → 拍照 → 视频)。本文将基于 Qualcomm、MTK、HiSilicon 平台的实际架构,系统性剖析 ISP 在多摄场景下的时序控制、Pipeline 配置、Buffer 管理与故障恢复机制,并分享实战中的典型问题与调试方案。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 2351

Android倚天剑之Notification之动感地带

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

leverli的专栏 9935

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

精雕软件(JDpaint) 5.5 绿色版

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

Android凝碧剑之CalendarView之万年历

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

leverli的专栏 7896

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android昆仑镜之Fragment

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

leverli的专栏 7554

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用严苛模式打破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、付费专栏及课程。

余额充值