很多程序在運行時都會把視窗最大化(全螢幕)且去掉 title,尤其是遊戲,這樣除了可以避免不必要的觸碰之外還能讓視覺上有比較好的範圍,全螢幕必須由 Window 類別達成,如下
   1:  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
事實上是等於這樣
   1:  Window w = getWindow();
   2:  w.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
去掉 Title 可使用 Activity 的 requestWindowFeature( ) 完成,如下
   1:  requestWindowFeature(Window.FEATURE_NO_TITLE);
指定視窗方向也是很常使用的方法,一般手機的預設都是自動旋轉,在某些情況下我們必須固定視窗方向,舉例來說橫軸射擊遊戲不會讓你旋轉畫面,方法如下
   1:  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
   2:  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
第 1 行為固定直式視窗畫面
第 2 行為固定橫式視窗畫面
必須注意的是如果程序會啟動不同的 Activity ,那在每個 Activity 的 onCreate() 都必須寫入設定,以上是用程式碼來達成,缺點是在啟動程序時還是會先顯示狀態列,我們可以改在 AndroidManifest.xml 中加入屬性這樣在啟動時就不會顯示狀態列了,如
去掉 title bar + 全螢幕
1: android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen"
指定視窗方向
1: android:screenOrientation="portrait"
   1:  <activity
2: android:name=".CopyRightFlow"
3: android:label="@string/title_activity_main"
4: android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen"
5: android:screenOrientation="portrait">
   6:              
   7:              <intent-filter>
8: <action android:name="android.intent.action.MAIN" />
   9:   
10: <category android:name="android.intent.category.LAUNCHER" />
  11:              </intent-filter>
  12:              
  13:          </activity>
將之前的版權宣告流程修改為全螢幕,去Title,程式碼為
   1:  package com.example.helloworld;
   2:   
   3:  import android.app.Activity;
   4:  import android.content.Context;
   5:  import android.content.Intent;
   6:  import android.content.pm.ActivityInfo;
   7:  import android.graphics.Typeface;
   8:  import android.net.ConnectivityManager;
   9:  import android.net.NetworkInfo;
  10:  import android.net.Uri;
  11:  import android.os.Bundle;
  12:  import android.view.Gravity;
  13:  import android.view.View;
  14:  import android.view.View.OnClickListener;
  15:  import android.view.Window;
  16:  import android.view.WindowManager;
  17:  import android.widget.Button;
  18:  import android.widget.TextView;
  19:   
20: public class MainActivity extends Activity {
  21:   
22: static final String tLog = "Trace Log";
  23:   
24: TextView tv; // init by xml use
  25:   
26: Button bYes; // enter button
27: Button bNo; // exit button
  28:      
  29:      @Override
30: public void onCreate(Bundle savedInstanceState) {
  31:   
  32:          super.onCreate(savedInstanceState);
  33:          
  34:          setWindowFeature();
  35:          
  36:          initByXml();
  37:   
  38:      }
  39:      
40: void setWindowFeature(){
41: //fullscreen
  42:          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
43: //no title
  44:          requestWindowFeature(Window.FEATURE_NO_TITLE);
45: //portrait
  46:          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  47:      }
47行之後都是相同的,注意第 34 行 setWindowFeature() 方法就是本篇介紹的方法,你必須放在 super.onCreate()之後
結果為



 Posted in:  
0 意見:
張貼留言