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

Android自定义标题栏

2011-12-12 14:26 337 查看
Android程序中默认标题栏是灰色背景,内容是工程名字,类似下图:





修改了标题栏布局,效果如下:





说一下具体步骤。首先,修改标题栏的宽度和背景,在strings.xml中添加:

<style name="CustomWindowTitleBackground">

<item name="android:background">@drawable/title_bg</item>

</style>

<style name="test" parent="android:Theme">

<item name="android:windowTitleSize">40dp</item>

<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>

</style>

然后修改AndroidMainfest.xml文件:

<activity android:name=".MainActivity"

android:theme="@style/test">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

红色部分为加载Activity的theme。

接着修改MainActivity:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //声明使用自定义标题

setContentView(R.layout.main);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);//自定义布局赋值

}

注意红色部分标记的3行代码,顺序不能颠倒。

最后在layout文件夹中添加title.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal" android:layout_width="fill_parent"

android:layout_height="fill_parent">

<ImageView android:layout_width="wrap_content"

android:layout_centerVertical=’true’

android:layout_height="wrap_content"

android:src="@drawable/ic_launcher_email" />

<TextView android:layout_width="wrap_content"

android:layout_centerInParent="true"

android:layout_height="wrap_content"

android:text="自定义标题栏" />

</RelativeLayout>

重新部署程序,效果如上图。

源码连接:http://bigcateasymorse.googlecode.com/svn/trunk/androidcustomtitle/

转自:http://bigcat.easymorse.com/?p=840
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: