android開發(33) 讓 actionbar 透明2


 讓 actionbar 的背景 透明

我需要一個 透明的actionbar ,找到如下方法實現:

1. 首先,設置ActionBar 浮動到主界面上來。

2. 然后,設置ActionBar的背景色,透明或者半透明。

 

那么如何實現這兩步呢?

第一步:

代碼實現: 在oncreate中:getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

使用theme 在style中實現: <item name="android:windowActionBarOverlay">true</item> 

第二步:

代碼實現:

ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#33000000")));
//google的actionbar是分為上下兩欄顯示的,上面的代碼只能設置頂部actionbar的背景色,
//為了讓下面的背景色一致,還需要添加一行代碼:
actionBar.setSplitBackgroundDrawable(new ColorDrawable(Color.parseColor("#33000000")));
        

使用theme 在style中實現:

<resources>

    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:windowActionBarOverlay">true</item> 
        <!-- 讓actionbar漂浮 -->
        <item name="android:actionBarStyle">@style/my_actionbar_style</item>
    </style>

    <style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
         <!-- 設置actionbar 背景色 透明 -->
        <item name="android:background">#33000000</item>
        <item name="android:backgroundStacked">#346c36</item>
        <item name="android:backgroundSplit">#33000000</item>
    </style>

</resources>

 

如何更改action的文本顏色?

 <style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">

        <!-- 設置actionbar 背景色 透明 -->
        <item name="android:background">#33000000</item>
        <item name="android:backgroundStacked">#346c36</item>
        <item name="android:backgroundSplit">#33000000</item>
       <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
    </style>

    <style name="MyActionBarTitleText" >
        <item name="android:textColor">@android:color/white</item>
    </style>

  

 如何獲得 actionbar的高度?

    public static int getActionbarHeight(Activity context) {
         int actionBarHeight = 0;
         // Calculate ActionBar height
         TypedValue tv = new TypedValue();
         if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize,
         tv, true))
         {
         actionBarHeight =
         TypedValue.complexToDimensionPixelSize(tv.data,context.getResources().getDisplayMetrics());
         }
         return actionBarHeight;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM