android ActionBar自定义标题栏

来源:互联网 发布:mac安装win7虚拟机教程 编辑:程序博客网 时间:2024/05/20 13:04
应用程序窗体显示状态操作requestWindowFeature可以设置的值有:

1.Window.DEFAULT_FEATURES:系统默认状态,一般不需要指定
2.Window.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定
3.Window.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
4.Window.FEATURE_INDETERMINATE_PROGRESS:不确定的进度
5.Window.FEATURE_LEFT_ICON:标题栏左侧的图标
6.Window.FEATURE_NO_TITLE:无标题
7.Window.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。
8.Window.FEATURE_PROGRESS:进度指示器功能
9.Window.FEATURE_RIGHT_ICON:标题栏右侧的图标

requestWindowFeature方法必须在Activity.setContentView()之前调用,否则无效。

1.Actitity
package com.test.activity;import android.app.Activity;import android.os.Bundle;import com.test.R;import com.test.widget.CustomTitleBar;public class TitleBarActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);MyTitleBar.getTitleBar(this, "我的自定义标题栏");setContentView(R.layout.titlebarmain);  }}


2.自定义标题栏类
package com.test.widget;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import com.test.R;public class MyTitleBar {private static Activity mActivity;/** * @see 自定义标题栏类 * @param activity * @param title */public static void loadTitleBar(Activity activity,String title) {mActivity = activity;// 不显示标题activity.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);// 该Activity所加载的标题栏activity.setContentView(R.layout.titlebar);// 这句代码必须在requestWindowFeature方法的后面,自定义的布局是R.layout.titlebaractivity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar);// 获得布局中的组件 并且进行设置TextView textView = (TextView) activity.findViewById(R.id.head_center_text);textView.setText(title);Button titleBackBtn = (Button) activity.findViewById(R.id.head_TitleBackBtn);titleBackBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Toast.makeText(mActivity, "你好",     Toast.LENGTH_SHORT).show();}});}}


3.titlebar布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/screen"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <TextView        android:id="@+id/head_center_text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:text=""        android:textColor="#FFFFFF" />    <Button        android:id="@+id/ head_TitleBackBtn"        android:layout_width="60dp"        android:layout_height="60dp"        android:layout_alignParentRight="true"        android:gravity="center|center_vertical"        android:layout_marginTop="5dp"        android:text="@string/hello"        android:onClick="show"/></RelativeLayout>


注意:1.当我们需要为每一个Activity设置标题栏时选择不同布局文件即可
2.修改AndroidManefest文件中application标签中的theme主题内容
0 0
原创粉丝点击