【Android介面實現】ActionBar利用整理的一些細節

來源:互聯網
上載者:User

標籤:

    轉載請註明出處: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裡面接受。代碼例如以下

@Overridepublic 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利用整理的一些細節

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.