很多程序在運行時都會把視窗最大化(全螢幕)且去掉 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()之後
結果為
0 意見:
張貼留言