2009年6月5日 星期五

Android 應用程式全螢幕作法

當初看到這個功能的時候說老實話我也嚇了一跳
沒搞錯吧,手機也要玩全螢幕,如果說一般PC遊戲程式用全螢幕我還相信
因為全螢幕的狀態遊戲程式的效能會比視窗模式還要高上許多
不過Android的確有提供這個功能,就是為了替手機的遊戲程式等提供更乾淨的介面


來看一下這張圖

一個Android應用程式會有兩個不屬於我們佈局檔的東西(圖看不清楚請點開放大)
  1. 第一個是上面紅框圈起來,也就是手機狀態的Bar
  2. 第二個是則是綠框圈起來的部分,是我們應用程式的標題


而要如何讓他們消失呢
可以用一行程式

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

首先用Activity的getWindow()函式得到Window物件
之後用他的setFlag()函式去設定視窗屬性在此用WindowManager.LayoutParams.FLAG_FULLSCREEN
代表我要設定為全螢幕

來看一下效果


唉呀!標題框還在沒消除。那個標題框是Activity的顯示屬姓,所以必須仰賴Activity的requestWindowFeature函式
去對Activity增加顯示效果,在此我使用

requestWindowFeature(Window.FEATURE_NO_TITLE);

這個是Google的遊戲範例,像是Snake、LunarLander都會看到的一行程式,使用Window.FEATURE_NO_TITLE這個參數,作用就是把應用程式的標題給移除。

onCreate的部分程式


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.list);
........
}



最後來看一下效果吧

他就變成一個完整的全螢幕應用程式了

沒有留言: