android actionbar 自定义样式

来源:互联网 发布:lua源码下载 编辑:程序博客网 时间:2024/05/20 15:59


       首先注意个问题

      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
原创粉丝点击