zoukankan      html  css  js  c++  java
  • 【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从功能上大体能够分为以下几个部分



        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));

        效果例如以下所看到的



  • 相关阅读:
    HDU_2955_Robberies_01背包
    01背包
    最长升序子序列
    快速排序
    HDU_1875_畅通工程再续
    iOS app 设计推荐
    iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
    iOS 8自动调整UITableView和UICollectionView布局
    iOS app发布流程
    iOS博客推荐
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5041771.html
Copyright © 2011-2022 走看看