您好,登錄后才能下訂單哦!
小編給大家分享一下Android如何實(shí)現(xiàn)手機(jī)游戲隱藏虛擬按鍵,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體內(nèi)容如下
在華為等型號的手機(jī)會有虛擬按鍵,在進(jìn)入游戲的時候,需要全屏隱藏這個按鍵,并在下拉狀態(tài)欄的時候,會重新呼出虛擬按鍵。
游戲的加載過程中,初始化檢查更新,然后進(jìn)入到游戲畫面,實(shí)際上是android的2個view的切換。
其中MainActivity中,在onCreate()方法中添加如下函數(shù)并且復(fù)寫一個方法就可以了。
@Override protected void onCreate(Bundle icicle) { hideNavigationBar(); } // 隱藏虛擬按鍵 public void hideNavigationBar() { int uiFlags = 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 // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN; // hide status bar if( android.os.Build.VERSION.SDK_INT >= 19 ){ uiFlags |= 0x00001000; //SYSTEM_UI_FLAG_IMMERSIVE_STICKY: hide navigation bars - compatibility: building API level is lower thatn 19, use magic number directly for higher API target level } else { uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE; } getWindow().getDecorView().setSystemUiVisibility(uiFlags); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if( hasFocus ) { hideNavigationBar(); } }
另外,在切換到GameView之后,發(fā)現(xiàn)隱藏是隱藏了,但是虛擬按鍵那一條是灰色的,游戲的渲染區(qū)域并不包含哪塊區(qū)域,所以覺得是渲染區(qū)域大小在隱藏了虛擬按鍵之后,這個大小并沒有正確,應(yīng)該取得的時候屏幕真正的分辨率。
下面的方法是獲取屏幕真正的分辨率,然后渲染區(qū)域是全屏,這樣就可以全屏顯示了。
private Point getDisplay(MainActivity context) { DisplayMetrics metrics = new DisplayMetrics(); Display display = context.getWindowManager().getDefaultDisplay(); display.getMetrics(metrics); DisplayMetrics dm = new DisplayMetrics(); @SuppressWarnings("rawtypes") Class c; try { c = Class.forName("android.view.Display"); @SuppressWarnings("unchecked") Method method = c.getMethod("getRealMetrics", DisplayMetrics.class); method.invoke(display, dm); return new Point(dm.widthPixels, dm.heightPixels); } catch (Exception e) { return new Point(dm.widthPixels, dm.heightPixels); } }
以上是“Android如何實(shí)現(xiàn)手機(jī)游戲隱藏虛擬按鍵”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。