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;
        }
  • 相关阅读:
    龙威零式_团队项目例会记录_12
    龙威零式_团队项目例会记录_11
    龙威零式_团队项目例会记录_10
    个人项目--词频统计
    四人小组-----车辆管理系统+员工管理
    效能分析
    结对编程体会
    累计进度条 PSP 饼图
    词频统计更新
    四人项目设计
  • 原文地址:https://www.cnblogs.com/vir56k/p/3953709.html
Copyright © 2011-2022 走看看