requestWindowFeature()的應用

android開發中常常會在setContentView(R.layout.XXX); 前設置requestWindowFeature(XXXX)。android

他的意思是須要軟件全屏顯示、自定義標題(使用按鈕等控件)和其餘的需求佈局

首先介紹一個重要方法那就是requestWindowFeature(featrueId),它的功能是啓用窗體的擴展特性。參數是Window類中定義的常量。this

1、枚舉常量spa

1.DEFAULT_FEATURES:系統默認狀態,通常不須要指定orm

2.FEATURE_CONTEXT_MENU:啓用ContextMenu,默認該項已啓用,通常無需指定xml

3.FEATURE_CUSTOM_TITLE:自定義標題。當須要自定義標題時必須指定。如:標題是一個按鈕時進程

4.FEATURE_INDETERMINATE_PROGRESS:不肯定的進度utf-8

5.FEATURE_LEFT_ICON:標題欄左側的圖標開發

6.FEATURE_NO_TITLE:沒有標題get

7.FEATURE_OPTIONS_PANEL:啓用「選項面板」功能,默認已啓用。

8.FEATURE_PROGRESS:進度指示器功能

9.FEATURE_RIGHT_ICON:標題欄右側的圖標

2、詳解

默認顯示狀態

 

1.FEATURE_CUSTOM_TITLE詳解

Java代碼  收藏代碼

  1. this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  

  2. setContentView(R.layout.main);  

 

這是由於沒有設置Featrue

在上面代碼後加:getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

 

自定義標題完成,它是一個xml文件佈局

 

Xml代碼  收藏代碼

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

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

  3.     android:layout_width="wrap_content"  

  4.     android:layout_height="wrap_content" >  

  5.   

  6.     <ImageView  

  7.         android:layout_width="wrap_content"  

  8.         android:layout_height="wrap_content"  

  9.         android:src="@drawable/ic_launcher"  

  10.         />  

  11.   

  12.     <TextView  

  13.         android:id="@+id/text"  

  14.         android:layout_width="wrap_content"  

  15.         android:layout_height="wrap_content"  

  16.         android:layout_alignParentLeft="true"  

  17.         android:textColor="#000000"  

  18.         android:text="FEATURE_CUSTOM_TITLE" />  

  19.   

  20. </LinearLayout>  

 

 

2.FEATURE_INDETERMINATE_PROGRESS詳解

能夠用來表示一個進程正在運行

Java代碼  收藏代碼

  1. this.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  

  2. setContentView(R.layout.main);  

  3. getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS, R.layout.progress);  

  4. setProgressBarIndeterminateVisibility(true);  

 

Xml代碼  收藏代碼

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

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

  3.     android:layout_width="wrap_content"  

  4.     android:layout_height="wrap_content" >  

  5.   

  6.     <ProgressBar  

  7.         android:id="@+id/progress"  

  8.         style="?android:attr/progressBarStyleSmallTitle"  

  9.         android:layout_width="wrap_content"  

  10.         android:layout_height="wrap_content"  

  11.         android:layout_gravity="center_vertical" >  

  12.     </ProgressBar>  

  13.   

  14. </LinearLayout>  

  

3.FEATURE_LEFT_ICON和FEATURE_RIGHT_ICON詳解

Java代碼  收藏代碼

  1. requestWindowFeature(Window.FEATURE_RIGHT_ICON);  

  2. setContentView(R.layout.main);      

  3. getWindow().setFeatureDrawableResource(Window.FEATURE_RIGHT_ICON,R.drawable.ic_launcher);  

 

Java代碼  收藏代碼

  1. requestWindowFeature(Window.FEATURE_LEFT_ICON);  

  2. setContentView(R.layout.main);          

  3. getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.ic_launcher);  

 

 

 4.FEATURE_NO_TITLE詳解

Java代碼  收藏代碼

  1. this.requestWindowFeature(Window.FEATURE_NO_TITLE);  

  2. setContentView(R.layout.main);  

 

Java代碼  收藏代碼

  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  

 

相關文章
相關標籤/搜索