原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现:
方法一、在你的那张Activity中onCreate方法中加上下面代码:
1
2
3
|
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //软件activity的布局 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局 |
但是新的问题又来了,这样是无法深层的定制标题栏的,比如原有的高度和背景都没有发生变化,那有没有好的方法呢?答案是有的、
方法二:
因此先定义一个style,若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<? xml version = "1.0" encoding = "utf-8" ?> < resources xmlns:android = "http://schemas.android.com/apk/res/android" > < style name = "CustomWindowTitleBackground" > < item name = "android:background" >#565656</ item > </ style > < style name = "test" parent = "android:Theme" > < item name = "android:windowTitleSize" >50dp</ item > < item name = "android:windowTitleBackgroundStyle" >@style/CustomWindowTitleBackground</ item > </ style > </ resources > |
在程序的android_manifest.xml中对应activity中添加属性android:theme = "@style/test" 就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<? xml version = "1.0" encoding = "utf-8" ?> < manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.guardian" android:versionCode = "1" android:versionName = "1.0" > < application android:icon = "@drawable/icon" android:label = "@string/app_name" > < activity android:name = ".Test" android:label = "@string/app_name" android:theme = "@style/test" //就在这里 > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > </ application > < uses-sdk android:minSdkVersion = "4" /> </ manifest > |
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了