我们在Android开发中经常会遇到这样一个问题,就是Android系统自带的Activity的title很难看,想不显示他或者显示自定义的title。今天就介绍一下怎么自定义title。
自定义title有两种方法。
方法一:我们取消自带的title,然后在布局文件中添加控件来达到自定义title的目的。
requestWindowFeature(Window.FEATURE_NO_TITLE); //取消title
布局文件添加控件实现自定义title
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="#1E90FF"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="4dp"
android:gravity="center"
android:text="后退"
android:textColor="#FFFFFF"
android:textSize="20sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="自定义title"
android:textColor="#FFFFFF"
android:textSize="20sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="4dp"
android:gravity="center"
android:text="前进"
android:textColor="#FFFFFF"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
方法二:创建一个自定义title的布局文件,布局文件和上面的布局文件基本一样。然后我们通过以下代码设置自定义title。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// // 请求一个自己定义的title,但有一些Android系统是被修改过的,
// // 所以有可能是无法请求的,如乐Phone或小米的手机,这些系统是被修改过的,
// // 所以就要判断一下是否请求成功
boolean flags = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_main);
if (flags)
{
// 设置自定义的title
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.activity_main_title);
}
}
接下来我们设置以下title的样式,方法和上一篇的自定义Dialog一样。在stytle文件中添加如下代码。
<style name="MyTitleBar" parent="@android:style/Theme">
<item name="android:windowTitleSize">48dip</item>
<item name="android:windowTitleBackgroundStyle">@color/title</item>
</style>
设置完样式接下来是使用样式。在AndroidMainfest文件里面应用我们的style。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTitleBar" > //这里使用
<activity
android:name="com.example.mytest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这就是我知道的两种自定义title的方法。