【Android接口实现】ActionBar利用整理的一些细节

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

关于ActionBar的使用,非常多大神早就已经写了非常好的文章进行了介绍,所以ActionBar的基本使用本文再赘述。今天我们主要讨论一下ActionBar在使用中的一些细节问题。

1.使用ActionBar的手机版本号限制是什么?

系统原生的ActionBar是在Android3.0(API 11)才引入的,主要用来提供一个统一风格的导航栏。来取代Activity的标题栏。对于手机来说,版本号仅仅存在2.x时代和4.x时代。这是由于3.x系统是为了平板而产生的,在手机上并不存在3.x版本号的系统。所以,假设使用系统原生的ActionBar。那么软件的最低版本号支持应该是4.0(API 14)。假设我们想最低支持2.2系统,那么原生的ActionBar就不能使用了,只是。我们能够使用第三方开源项目ActionBarSherlock。实现2.x版本号的兼容。

这个项目的使用临时先不介绍了。资料非常多,以下是项目的Github地址:https://github.com/JakeWharton/ActionBarSherlock

2.默认的ActionBar上面有哪些内容?

当我们创建一个默认的4.0以上版本号的APP的时候,会自带一个默认效果的ActionBar,ActionBar从功能上大体能够分为以下几个部分

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2thaXFpYW5nMTk5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

3.Home区域显示的是什么内容呢?

Home的位置默认是用来放置APP的icon的。可是这个位置,也能够用来放一个logo的图片。

icon与logo的差别在于。icon指的是APP在手机桌面的图标,而logo则没有限制,不论什么图片都能够。可是为了增强用户对品牌的认知度。logo一般使用品牌的图片。

须要注意的是。icon和logo是不能同一时候存在的,假设有logo。icon会被覆盖。

4.怎样指定显示icon还是logo?

我们能够使用以下的方式。来制定某一个Activity的icon和logo属性

 <activity
            android:name=".MainActivity"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:logo="@drawable/qr" >
        </activity>

设置好这些属性之后。假设不做其它的额外设置,APP默认会显示logo的图片。例如以下图所看到的

假设我们想显示icon怎么办呢?

使用以下的代码就可以

actionBar = getActionBar();

actionBar.setDisplayUseLogoEnabled(false);

效果例如以下

假设这两个图标我们都不想要呢?通过以下的代码。就能够把Home的图标都去掉了。

actionBar.setDisplayShowHomeEnabled(false);

5.怎样指定显示的标题文字?

标题文字区域用来指示当前的界面,分为主标题和副标题,我们能够通过以下的方式来设置显示的标题

<activity
            android:name=".MainActivity"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:logo="@drawable/qr" >
        </activity>

当然,我们也能够在代码中控制显示的标题和副标题,就像以下这样:

actionBar.setTitle("我是主标题");
actionBar.setSubtitle("我是副标题");

以下是实现的效果

我们也能够通过以下的代码隐藏标题

actionBar.setDisplayShowTitleEnabled(false);

6.假设在Home区域,加上向上的导航图标?

假设Home区域的点击效果是回到上一级。那么仅仅使用icon就不太合适了,我们能够通过以下的代码,将Home区域加上向上的导航图标,从而使得导航更加的明白

actionBar.setDisplayHomeAsUpEnabled(true);

效果图例如以下:

加上向上的导航图标之后,我们就能够接受到这个小图标的点击事件。点击事件就在onOptionsItemSelected里面接受。代码例如以下

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}

		if (id == android.R.id.home) {
			Toast.makeText(this, "点击", Toast.LENGTH_SHORT).show();
			return true;
		}

		return super.onOptionsItemSelected(item);
	}

由于这个位置是系统设定的。因此id就是固定的android.R.id.home,我们在onOptionsItemSelected里面就能够接收到点击事件,然后进行相应的逻辑处理。

另外的一个思路是使用前面介绍的logo,把logo设置成返回的图标。也能够实现相似的效果。

7.怎样给ActionBara设置自己定义的背景或者是颜色

ActionBar自带的颜色仅仅有黑色和白色。假设我们想改变ActionBar的颜色。我们能够使用图片或者是纯颜色值。

假设使用自己定义图片,我们能够向以下这样做

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);

actionBar.setBackgroundDrawable(d);

效果例如以下

假设使用自己定义的颜色。我们能够象以下这样

actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));

效果例如以下所看到的

时间: 2024-10-06 15:22:26

【Android接口实现】ActionBar利用整理的一些细节的相关文章

Android:学习AIDL笔记整理

参考:http://blog.csdn.net/luoyanglizi/article/details/51980630 1.AIDL是什么? AIDL (Android Interface Definition Language), Android接口定义语言,Android提供的IPC (Inter Process Communication,进程间通信)的一种独特实现. 设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信. 每一个进程都有自己的Dalvik V

Android开发实践:利用ProGuard进行代码混淆

由于Android的代码大都是Java代码,所以挺容易被反编译的,好在Android ADT为我们集成了混淆代码的工具,一来可以混淆我们的代码,让程序被反编译后基本看不懂,另外还能起到代码优化的作用.发布项目前,建议打开Android的代码混淆功能. Android ADT主要通过ProGuard工具来提供代码混淆,网上也有挺多博客文章讲这个的,但感觉很多都介绍得太过于复杂,这里我就以问答的方式来更加简洁地介绍下ProGuard吧. 1. ProGuard是什么 ProGuard是一个工具,用来

我写的Android图表库XCL-Charts,整理好现在开源了!!!

XCL-Charts v0.1 Android开源图表库,基于原生的Canvas来绘制各种图表.目前支持3D/非3D柱形图.3D/非3D饼图.堆叠图.面积图.折线图.曲线图.环形图.南丁格尔玫瑰图.仪表盘.圆形图等等,并支持图表的混合显示及同数据源不同类型图表切换的功能. License 采用Apache v2 License开源协议. 开源中国上的代码托管地址: https://git.oschina.net/xclcharts/XCL-Charts 开源中国项目地址: http://www.

Android 接口回调机制详解

在使用接口回调的时候发现了一个经常犯的错误,就是回调函数里面的实现有可能是用多线程或者是异步任务去做的,这就会导致我们期望函数回调完毕去返回一个主函数的结果,实际发现是行不通的,因为如果回调是多线程的话你是无法和主函数同步的,也就是返回的数据是错误的,这是非常隐秘的一个错误.那有什么好的方法去实现数据的线性传递呢?先介绍下回调机制原理. 回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数

android接口加密

最近公司写的android接口需要加密,防止被恶意攻击. 1 大多数接口加密都是携带证书,大家可以参考这位大兄弟的  http://my.oschina.net/jjface/blog/339144 2 这种携带证书比较麻烦,而且代码比较多,比较繁琐一般同学都搞不定,所以就想了个简单的办法,传两个参数,一个是string类型的另一种是MD5加密的密文,在服务端写个拦截器/或者过滤器去拦截他,然后做自己相应的逻辑处理,把string类型的字段拿过来加上其他一些东西,用MD5加密和传过来的密文做相应

android开发最常用例子整理----(1)自定义按钮实现

android开发最常用例子整理----(1)自定义按钮实现 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

Android学习路线(六)为Android应用添加ActionBar

Action bar 是你可以为你的应用的Activity实现的最为重要的设计元素之一.它提供了集中UI特性,并且通过提供和其他的Android应用的一致性体验让你的应用能够很快被用户熟悉.主要的功能包括: 一个专用的显示应用表示的地方,并且能够指出用户当前在应用中的位置. 用户能够很方便地访问重要的功能(例如搜索). 提供视图切换导航(通过tab,或者下拉列表). 这次的训练课程提供了对action bar基础知识的快速引导.有关action bar的各种特性的更多信息,请查看Action B

[Android]AndroidDesign中ActionBar探究1

概述 从Google IO 2013大会以来越来越多的Android应用开始遵循Android的设计风格,简单的就是google play和Gmail,在国内我们常用的软件像知乎.印象笔记,主要的界面主要是左侧的抽屉菜单(参照).顶部和底部的ActionBar(参照)等.由于以前都是遵循Ios的设计开始开发的一些,现在在公司,公司开始推崇Android Desgin(我们公司总是走在前列啊,现在Team 开发的 Version Control开始在Git开发),我们也必须要看下ActionBar

(Android Studio)ActionBar&#39;s Theme/Style [ActionBar主题风格修改]

默认theme代码如下: 运行结果: 视觉效果:ActionBar为Dark,其余文本为Light. 将theme改为Light: 运行结果: 视觉效果:ActionBar和文本都为Light. (Android Studio)ActionBar's Theme/Style [ActionBar主题风格修改]