2012-03-07

Android 的全螢幕設定

在設計 Android 程式時, 如果要以全螢幕顯示, 方法如下 :

1 . 在 import 中置入這兩行 :
      import android.view.Window;
      import android.view.WindowManager;

2 . 在 Activity 區段內的 onCreate() { .... } 之中, 置入相關的參數
      requestWindowFeature(....);
      getWindow().setFlags( .... );

程式的結構如下 :

import .... (略)
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends Activity {
...... (略)

   DrawViewTest mDrawViewTest;
   .....

   public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(mDrawViewTest);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN );

   } ...... (略)
}


使用全螢幕顯示時, setContentView( ... ) 內的引用類別必須以 SurfaceView 為延伸架構 (如上例的 mDrawViewTest), 不然無法正常顯示 ! 因此, 原先佈置畫面的 xml 檔內容將派不上用場喔 !


至於 DrawViewTest (此類別的名稱可自訂) 的大致架構如下 :

import ... (略)

public class DrawViewTest extends SurfaceView implements SurfaceHolder.Callback { .... (略) }

DrawViewTest 類別內的細節非本文討論重點, 因此沒有列出細節.
我用兩張圖來做比較, 這樣應該會比較清楚是否設定全螢幕顯示的差別 !


這是沒有設定全螢幕的畫面, 還可以看見上方的 Title

以全螢幕顯示, 上方的 Title 消失囉! 我用程式在上面畫出一個橢圓形
這樣知道兩者的差別了吧 ! 在開發遊戲時, 全螢幕顯示最常被運用到, 而且 SurfaceView 類別的顯示速率也比一般的 View 類別要快上許多 ! .^_^.

2 則留言:

  1. 可以問一下文章中的SurfaceView功能是什麼嗎?
    順便問一下如何做到"滑動頁面"的效果-//-
    感謝..

    回覆刪除
  2. SurfaceView 是『高速圖像處理介面』
    功能如字面上所述,主要應用於圖形繪製(或貼圖),由於 SurfaceView 是直接由函式庫層級調用,因此反應速度比其他顯示圖像的元件要來得快 !

    要做到滑動頁面的特效請參考 Android 官網 > Develop > Training .... :
    http://developer.android.com/training/animation/screen-slide.html

    回覆刪除

搜尋此網誌