zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    bzoj2395: [Balkan 2011]Timeismoney
    bzoj2725: [Violet 6]故乡的梦&&bzoj4400: tjoi2012 桥
    bzoj3047: Freda的传呼机&bzoj2125: 最短路
    bzoj2734: [HNOI2012]集合选数
    bzoj2728: [HNOI2012]与非
    bzoj2730: [HNOI2012]矿场搭建
    bzoj2727: [HNOI2012]双十字
    蓝桥杯-计蒜客之节假日
    蔡基姆拉尔森计算公式
    最长公共子串与最长公共子序列
  • 原文地址:https://www.cnblogs.com/vir56k/p/3953709.html
Copyright © 2011-2022 走看看