1. 程式人生 > >自定義ActionBar -- 更換返回鍵圖示

自定義ActionBar -- 更換返回鍵圖示

實現上述自定義的返回鍵圖示,且圖片隨按下圖示而變化。

1 準備好倆個返回鍵圖片,利用selector設定,在不同狀態下,呼叫不同圖片。

在drawble資料夾下定義一個menu_back_bg.xml檔案:

<?xml version="1.0" encoding="UTF-8"?>


<selector xmlns:android="http://schemas.android.com/apk/res/android">
      
    <item 
        android:state_pressed="true"    
        android:drawable="@drawable/menu_back_blue"/>

      <item     
        android:drawable="@drawable/menu_back_gray"/>
    
</selector>

越在前面的item優先順序越高,所以需要android:state_pressed這個item放在前面。

如果倆者順序相反,將會一直顯示menu_back_gray這個白色圖片。

2.在values資料夾下的styles.xml檔案中通過自定義android:homeAsUpIndicator的圖片,達到更改返回鍵圖示的作用

      <style name = "ActionBarStyle" parent="@android:style/Widget.DeviceDefault.ActionBar">
  		
   
      </style>

      <style name="SimInfoTheme" parent="@android:style/Theme.DeviceDefault.Light">
        <item name="android:actionBarStyle">@style/ActionBarStyle </item>
       <item name ="android:homeAsUpIndicator">@drawable/menu_back_bg</item>
   
        
      </style>


3.最後在AndroidManifest.xml資料夾中給該activity加上自定義的theme

        <activity
            android:name="com.sec.android.app.simrecord.SimRecord"
            android:label="@string/app_name"
            android:theme="@style/SimRecordTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

其實直接在activity中通過AvtionBar進行設定該圖示也是可以的:

  ActionBar mActionBar = getActionBar();
        mActionBar.setDisplayHomeAsUpEnabled(true);
        mActionBar.setHomeAsUpIndicator(R.drawable.menu_back_bg);  //設定自定義的返回鍵圖示