您的位置:首页 > 移动开发 > Android开发

android界面之自定义标题栏

2012-09-19 11:40 357 查看
android自带的标题栏有点丑,开发时基本上都要重写自己的标题栏,下面是一点介绍。

在继承Activity的类,onCreate函数中,super.onCreate(savedInstanceState)函数调用之后,设置自定义标题栏,如

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);//1
setContentView(R.layout.activity_main);//2
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.m_title_button);//3
}


注意123三步顺序不能错,R.layout.m_title_button是我定义的XML布局文件,如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Button
android:id="@+id/add_dict"
android:layout_width="60dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="上一页"
android:textColor="@color/white"
android:textSize="12dip"
android:background="@drawable/button_bg"
/>
<TextView
android:id="@+id/textview_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="标题"
android:textColor="@color/white"/>
<Button
android:id="@+id/title_btn_right"
android:layout_width="60dip"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="下一页"
android:textColor="@color/white"
android:textSize="12dip"
android:background="@drawable/button_bg"
/>
</RelativeLayout>

最早时候我是在RelativeLayout属性里头定义了背景的,当时做到这里还没运行之前,以为就已经全部搞定了,内心窃喜,不过运行之后就发现问题了,背景颜色没铺满整个标题栏,怎么办呢?后来百度了好久找到了解决的办法,如下:

项目浏览器里头,res/values/styles.xml里头定义style项,如下

<style name="titlebarstyle" parent="android:Theme">
<item name="android:windowTitleSize">38dip</item>
<item name="android:windowTitleBackgroundStyle">@style/myTitleBarBackground</item>
</style>

<style name="myTitleBarBackground">
<item name="android:background">@drawable/titlebar_bg</item>
</style>


titlebarstyle继承Theme主题样式,设置高度,设置背景项,下面再定义一个背景,然后在项目的AndroidManifest.xml中引用该类型就好,如下:

<activity
android:theme="@style/titlebarstyle"
android:name=".NewWordNote">
</activity>
至此,运行完事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: