android actionbar 自定义样式


       首先注意个问题

      values-v11代表在API 11+的设备上,用该目录下的styles.xml代替res/values/styles.xml
      values-v14代表在API 14+的设备上,用该目录下的styles.xml代替res/values/styles.xml   
      其中API 11+代表android 3.0 +
      其中API 14+代表android 4.0 +

      不同的android版本使用的样式文件是不一样,有些样式在不同版本定义不大一样,的这点注意      


一:系统默认actionbar样式介绍

       Theme.Holo,则默认是黑底白字,Theme.Holo.Light,也就是说默认背景是白底黑字


二:更改actionbar背景色       


     1:values-v14下 

            打开values-v14下的styles加入       

<style name="MyTheme" parent="android:Theme.Holo.Light.DarkActionBar" >  
       <!--  <item name="android:windowTitleBackgroundStyle">@style/style_bg_bar</item>   -->
        <item name="android:actionBarStyle">@style/MyActionBar</item>  
      <!--   <item name="android:actionModeBackground">@style/style_bg_bar</item> -->
    </style> 
    
     <style name="MyActionBar"
           parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@drawable/actionbar_background</item>
    </style>
        首先看看该styles里边默认继承的是什么,自定义的就继承他就行了,里边的样式可以按住ctrl+鼠标转到定义(eclipse快捷键),

      可以看到里边的样式定义,那些是我们可以重写的

      例如我们转到系统自动的parent="android:Theme.Holo.Light.DarkActionBar"中去,可以看到系统定义了很多属性,

     这些都是我们可以覆盖重写的

      

         上边我们只重写了:android:actionBarStyle属性

         这里需要注意android:actionBarStyle原来是使用系统自带的@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse

         需要我们最好继承他去修改其中我们想改的东西,不然需要每个都重写,还有如果自己写有些属性本身没有在他里边定义的,

        android运行解析的时候会报错的

        同样@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse里边具体定义了什么我们可以用ctrl+鼠标点击查看

       

         我们使用上边自定义的样式android:theme="@style/MyTheme" 

         


三:更改actionbar title 标题颜色

         重写android:actionBarStyle的android:titleTextStyle即可  

 <style name="MyActionBar"
           parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@drawable/actionbar_background</item>
       <item name="android:titleTextStyle">@style/AcBar_titleStyle</item>

    </style>
    
      <style name="AcBar_titleStyle">    
        <item name="android:textSize">18sp</item>  
        <item name="android:textColor">#FF00ff</item>    
    </style> 

四:修改Actionbar下拉框Navigation的样式

        

        - -为了修改这个颜色纠结得够,一直想用继承覆盖样式的方法去修改,始终未果,有会的望告知!

        虽然直接修改样式不行只有换个思路换个方法,Navigation是使用的spinner,spinner可以通过自定义Adapter或修改布局文件控制.

        1:修改Navigation使用的布局文件

            默认使用的是android.R.layout.simple_spinner_dropdown_item,好了看源代码复制出来,只修改下字体颜色,然后用我们自定义就行了,

           这样一想改这个颜色就变得非常简单了^_^             

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:ellipsize="marquee"
    android:textColor="#ff00ff"
    android:textAlignment="inherit"/>
   
ArrayAdapter<Object> adapter = new ArrayAdapter<Object>(  
             getActivity().getBaseContext(),  
                R.layout.my_simple_spinner_dropdown_item, actions);

            






     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值