安卓app中的内置标题栏不同版本差异很大,但无论是2.3以下或4.0以上系统的标题栏,能自定义的属性都很少。在开发Android应用中,想创建一个漂亮的自定义标题栏,有两种方法,
目前成都创新互联公司已为1000+的企业提供了网站建设、域名、雅安服务器托管、网站托管维护、企业网站设计、神农架林区网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
第一,使用第三方框架,如SerlockActionbar。
第二,在XML中头部做一个layout来作为标题栏(实际上就是普通的view)
我使用的是第二种方法,灵活性强些。
在android中去掉标题栏有三种方法,它们也有各自的特点。
1.在代码里实现
[java] view plaincopy
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
记住:这句代码要写在setContentView()前面。
2.在清单文件(manifest.xml)里面实现
[java] view plaincopy
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。
3.在style.xml文件里定义
[html] view plaincopy
?xml version="1.0" encoding="UTF-8" ?
resources
style name="notitle"
item name="android:windowNoTitle"true/item
/style
/resources
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。
[html] view plaincopy
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle"
其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的style.xml文件,而第三种方法则是在自己的应用里定义style.xml,然后再自己再调用,其实道理是一样的,第三种方法做起来更有成就感。
原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现:
方法一、在你的那张Activity中onCreate方法中加上下面代码:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main); //软件activity的布局
但是新的问题又来了,这样是无法深层的定制标题栏的,比如原有的高度和背景都没有发生变化,那有没有好的方法呢?答案是有的、
方法二:
因此先定义一个style,若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
?xml version="1.0" encoding="utf-8"?
resources xmlns: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"
就可以了
activity android:name=".Test"
android:theme = "@style/test" //就在这里
/activity
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了