Android項目實戰(四十一):遊戲和視頻類型應用 狀態列沈浸式效果

來源:互聯網
上載者:User

標籤:ble   沒有   操作   標題   內容   src   near   名稱   androi   

  需求:

   手機app ,當打遊戲或者全屏看視頻的時候會發現這時候手機頂部的狀態列是不顯示的,當我們從手機頂端向下進行滑動或手機底端向上滑動的時候,狀態列會顯示出來,如果短暫的幾秒時間沒有操作的話,狀態列會再次隱藏。

  

  實現代碼:


  @Override
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
  }

  @Override
  public void onWindowFocusChanged(boolean hasFocus) {
   super.onWindowFocusChanged(hasFocus);
   if (hasFocus && Build.VERSION.SDK_INT >= 19) { // 如果有焦點,說明當前與使用者互動 並且SDK_INT>=19 只有Android4.4+才支援沈浸式效果
   View decorView = getWindow().getDecorView();
   decorView.setSystemUiVisibility(
   View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
   }
  }

   

  效果:

          

 

  代碼解釋:

  1、 onWindowFocusChanged(boolean hasFocus) 方法

     Activity生命週期,可以理解為走到這個方法的時候,activity才是真正意義上的顯示/消失在互動層。    當activity顯示在棧頂,和使用者互動的時候,是有焦點的,hasFocus 為 true    當activity退出棧頂,不和使用者互動的時候,是沒有焦點的,hasFocus 為 false

 

 

  2、getWindow.getDecorView()方法  , 擷取Window介面最頂層View

  一、DecorView為整個Window介面的最頂層View。  二、DecorView只有一個子項目為LinearLayout。代表整個Window介面,包含通知欄,標題列,內容顯示欄三塊地區。  三、LinearLayout裡有兩個FrameLayout子項目。    (20)為標題列顯示介面。只有一個TextView顯示應用的名稱。也可以自訂標題列,載入後的自訂標題列View將加入FrameLayout中。    (21)為內容欄顯示介面。就是setContentView()方法載入的布局介面,加入其中。

 

 

    

    註:

    和Activity全螢幕顯示的區別在於,如果手機有虛擬導覽列(即虛擬後退、home鍵),則全屏會一直顯示,而上述方法,導覽列和狀態列同步顯示,上述需求則用全屏實現效果不對。

 

Android項目實戰(四十一):遊戲和視頻類型應用 狀態列沈浸式效果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.