摘要 我写了一个记事本的程序,不太喜欢黑色背景,因此将主题设置为Theme.Holo.Light,这个主题的特点是默认(没有人为设置的情况下)背景是白色,字体为黑色,但是这会导致actionbar的程序标题的字体颜色也为黑色,如果actionbar的背景我们采用默认的白色当然没
我写了一个记事本的程序,不太喜欢黑色背景,因此将主题设置为Theme.Holo.Light,这个主题的特点是默认(没有人为设置的情况下)背景是白色,字体为黑色,但是这会导致actionbar的程序标题的字体颜色也为黑色,如果actionbar的背景我们采用默认的白色当然没问题,可是我的背景是棕色的,字体为黑色就显得不好看,这时哦需要将字体改成白色。
为了一个字体颜色更改主题当然不划算。
于是我想到了自定义Theme.Holo.Light主题:
AndroidManifest.xml中将应用的主题设置成自己定义的一个继承了Theme.Holo.Light的主题。
1
2
3
4
5
|
<application
android:allowBackup=
"true"
android:icon=
"@drawable/ic_launcher"
android:label=
"@string/app_name"
android:theme=
"@style/CustomActivityTheme"
>
|
在res/values/的style文件中,我只是想改变这个主题的应用标题,所以只需自定义一下actionbar的样式:
1
2
3
4
|
<style name=
"CustomActivityTheme"
parent=
"@android:style/Theme.Holo.Light"
>
<item name=
"android:actionBarStyle"
>@style/MyActionBar</item>
</style>
|
@style/MyActionBar,MyActionBar
就是我们自定义样式的名称,写法如下:
1
2
3
|
<style name=
"MyActionBar"
parent=
"@android:style/Widget.Holo.ActionBar"
>
<item name=
"android:titleTextStyle"
>@style/TextAppearance.Holo.Widget.ActionBar.Title.Own</item>
</style>
|
android:titleTextStyle属性是ActionBar的属性之一,设置actionbar字体颜色的,而titleTextStyle的属性又有好多种,因此我们又定义了一个自定义的style TextAppearance.Holo.Widget.ActionBar.Title.Own来设置titleTextStyle
1
2
3
4
|
<style name=
"TextAppearance.Holo.Widget.ActionBar.Title.Own"
parent=
"@android:style/TextAppearance.Holo.Widget.ActionBar.Title"
>
<item name=
"android:textColor"
>
#FFFFFF</item>
</style>
|
如此这般设置之后,我的目的就达到了,这次我得到的经验是,任何主题都是可以随意定制的,但是你必须清楚,每个主题之下有哪些属性,他们的作用和名称。否则你还是没办法。