標籤:
轉載請註明出處: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利用整理的一些細節