requestWindowFeature可以设置的值有:
1.DEFAULT_FEATURES:系统默认状态,一般不需要指定
2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定
3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度
5.FEATURE_LEFT_ICON:标题栏左侧的图标
6.FEATURE_NO_TITLE:无标题
7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。
8.FEATURE_PROGRESS:进度指示器功能
9.FEATURE_RIGHT_ICON:标题栏右侧的图标
效果图:
default:
progress:
no title:
lefticon:
fullscreen:
indeterminate_progress:
customtitle:
代码:
1 package com.my; 2 import android.app.Activity; 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.os.Message; 6 import android.view.Window; 7 import android.view.WindowManager; 8 public class WindowFeatureDemoActivity extends Activity { 9 @Override 10 public void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 // requestWindowFeature();的取值 13 // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 14 // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定 15 // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时 16 // 4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度 17 // 5.FEATURE_LEFT_ICON:标题栏左侧的图标 18 // 6.FEATURE_NO_TITLE:无标题 19 // 7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。 20 // 8.FEATURE_PROGRESS:进度指示器功能 21 // 9.FEATURE_RIGHT_ICON:标题栏右侧的图标 22 // ========================FEATURE_INDETERMINATE_PROGRESS:不确定的进度 23 // showFEATURE_INDETERMINATE_PROGRESS(); 24 // // =====================FEATURE_CUSTOM_TITLE 25 // showFEATURE_CUSTOM_TITLE(); 26 // // ======================== FEATURE_LEFT_ICON:标题栏左侧的图标 27 // showFEATURE_LEFT_ICON(); 28 // // ======================FEATURE_NO_TITLE 29 // showFEATURE_NO_TITLE(); 30 // =================================FEATURE_PROGRESS 31 showFEATURE_PROGRESS(); 32 } 33 private void showFEATURE_INDETERMINATE_PROGRESS() { 34 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 35 setContentView(R.layout.main); 36 getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress); 37 // 必须得加上否则显示不出效果 可以通过这个在以后设置显示或隐藏 38 setProgressBarIndeterminateVisibility(true); 39 } 40 private void showFEATURE_CUSTOM_TITLE() { 41 // 自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时 42 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 43 setContentView(R.layout.main); 44 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitle); 45 } 46 private void showFEATURE_LEFT_ICON() 47 { 48 requestWindowFeature(Window.FEATURE_LEFT_ICON); 49 setContentView(R.layout.main); 50 getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, 51 R.drawable.icon); 52 } 53 private void showFEATURE_NO_TITLE() 54 { 55 requestWindowFeature(Window.FEATURE_NO_TITLE); 56 setContentView(R.layout.main); 57 // 加上这句设置为全屏 不加则只隐藏title 58 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 59 WindowManager.LayoutParams.FLAG_FULLSCREEN); 60 } 61 private void showFEATURE_PROGRESS() 62 { 63 requestWindowFeature(Window.FEATURE_PROGRESS); 64 setProgressBarVisibility(true); 65 setContentView(R.layout.main); 66 setTitle(""); 67 getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 68 // 通过线程来改变ProgressBar的值 69 new Thread(new Runnable() { 70 public void run() { 71 for (int i = 0; i < 10; i++) { 72 try { 73 Thread.sleep(1000); 74 Message m = new Message(); 75 m.what = (i + 1) * 20; 76 WindowFeatureDemoActivity.this.myMessageHandler.sendMessage(m); 77 } catch (Exception e) { 78 e.printStackTrace(); 79 } 80 } 81 } 82 }).start(); 83 } 84 Handler myMessageHandler = new Handler() { 85 // @Override 86 public void handleMessage(Message msg) { 87 // 设置标题栏中前景的一个进度条进度值 88 setProgress(100 * msg.what); 89 // 设置标题栏中后面的一个进度条进度值 90 setSecondaryProgress(100 * msg.what + 10); 91 super.handleMessage(msg); 92 } 93 }; 94 }