【Android界面实现】ActionBar使用的若干细节整理
2014-11-20 14:49
381 查看
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992
关于ActionBar的使用,很多大神早就已经写了非常好的文章进行了介绍,所以ActionBar的基本使用本文再赘述,今天我们主要讨论一下ActionBar在使用中的一些细节问题。
<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);
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);
加上向上的导航图标之后,我们就可以接受到这个小图标的点击事件,点击事件就在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设置成返回的图标,也可以实现类似的效果。
如果使用自定义的颜色,我们可以象下面这样 actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE)); 效果如下所示
关于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/ActionBarSherlock2.默认的ActionBar上面有哪些内容?
当我们创建一个默认的4.0以上版本的APP的时候,会自带一个默认效果的ActionBar,ActionBar从功能上大体可以分为以下几个部分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.如何指定显示的标题文字?
标题文字区域用来指示当前的界面,分为主标题和副标题,我们可以通过下面的方式来设置显示的标题<activityandroid: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)); 效果如下所示
相关文章推荐
- 【Android界面实现】ActionBar使用的若干细节整理
- 【Android接口实现】ActionBar利用整理的一些细节
- 【Android界面实现】使用ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面
- ActionBar使用的若干细节整理
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- Android使用Thread+Handler实现非UI线程更新界面
- android,viewpage实现应用程序员宝典;扩展包不管什么android版本都可以用;第一次安装使用从封面到提示帮助界面
- 【Android 复习】:第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android界面实现】使用GestureOverlayView控件实现手势识别
- ActionBar在Android2.x的实现,类似新版微信界面。
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- Android之UI学习篇十:使用TabHost实现微博客户端界面
- android-使用ViewGroup实现左右滑动切换界面以及界面裂开的效果
- Android UI设计 使用选项卡实现界面切换
- 【Android界面实现】自定义滑动开关控件的实现与使用
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- android 中使用TabHost控件实现微信界面的底部菜单效果
- Android设置界面及Preference使用 + 实现开启自启动 清理缓存 杀进程
- 【Android 界面效果17】Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- 【Android UI】使用RelativeLayout与TableLayout实现登录界面