自定义标题栏一共有四步,下面逐步介绍:
一:在strings.xml文件中配置标题栏的背景和大小
<style name="CustomWindowTitleBackground">
<!-- 背景图片 -->
<item name="android:background">@drawable/home_top</item>
</style>
<style name="title_bar" parent="android:Theme">
<item name="android:windowTitleSize">40dp</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
</style>
二:配置AndroidMainfest.xml文件中相应的activity:
<activity android:name=".activity.PlazaActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN"
android:theme="@style/title_bar" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
三:在layout文件夹中添加自定义标题栏的布局文件:title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:background="@drawable/home_top"
android:gravity="center"
android:textColor="#ffffff"
android:textSize="30sp" >
</TextView>
<!-- 圆形进度条 -->
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp" >
</ProgressBar>
</RelativeLayout>
四:准备就绪,最后在相应的activity中声明使用自定义标题栏,例如MainActivity.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 声明使用自定义标题栏,注意代码的顺序
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.plaza);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.title_bar);
}
四步完成自定义标题栏。
因为上述例子我用到了圆形的进度条,就简单介绍下它的使用:
进度条布局文件:progress.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ProgressBar android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
style="?android:attr/progressBarStyleSmallTitle">
</ProgressBar>
</LinearLayout>
在相应的activity中声明:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 声明使用系统默认的圆形进度条。
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);
setProgressBarIndeterminateVisibility(true); //开始进度条
setProgressBarIndeterminateVisibility (false); //结束进度条
}