Android實(shí)現(xiàn)手機(jī)游戲隱藏虛擬按鍵
手機(jī)游戲?qū)崿F(xiàn)Android隱藏虛擬按鍵,供大家參考,具體內(nèi)容如下
在華為等型號(hào)的手機(jī)會(huì)有虛擬按鍵,在進(jìn)入游戲的時(shí)候,需要全屏隱藏這個(gè)按鍵,并在下拉狀態(tài)欄的時(shí)候,會(huì)重新呼出虛擬按鍵。
游戲的加載過(guò)程中,初始化檢查更新,然后進(jìn)入到游戲畫面,實(shí)際上是android的2個(gè)view的切換。
其中MainActivity中,在onCreate()方法中添加如下函數(shù)并且復(fù)寫一個(gè)方法就可以了。
@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ū)域,所以覺(jué)得是渲染區(qū)域大小在隱藏了虛擬按鍵之后,這個(gè)大小并沒(méi)有正確,應(yīng)該取得的時(shí)候屏幕真正的分辨率。
下面的方法是獲取屏幕真正的分辨率,然后渲染區(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); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)狀態(tài)欄和虛擬按鍵背景顏色的變化實(shí)例代碼詳解
- Android隱藏手機(jī)底部虛擬按鍵的方法
- Android實(shí)現(xiàn)隱藏手機(jī)底部虛擬按鍵
- Android 虛擬按鍵適配動(dòng)態(tài)調(diào)整布局的方法
- Android適配底部虛擬按鍵的方法詳解
- android底層去掉虛擬按鍵的實(shí)例講解
- Android dialog 去除虛擬按鍵的解決方法
- 解決Android 虛擬按鍵遮住了頁(yè)面內(nèi)容的問(wèn)題
- Android 虛擬按鍵與沉浸式的適配方法
- Android如何解決虛擬按鍵欄遮擋問(wèn)題
相關(guān)文章
Android百度地圖應(yīng)用之基本地圖功能實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Android百度地圖應(yīng)用之基本地圖功能實(shí)現(xiàn)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-06-06Flutter路由守衛(wèi)攔截的實(shí)現(xiàn)
路由守衛(wèi)攔截最常見(jiàn)的應(yīng)用場(chǎng)景就是對(duì)用戶數(shù)據(jù)權(quán)限的校驗(yàn),本文主要介紹了Flutter路由守衛(wèi)攔截的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Android開發(fā)實(shí)現(xiàn)在TextView前面加標(biāo)簽示例
這篇文章主要為大家介紹了Android開發(fā)實(shí)現(xiàn)TextView前面加標(biāo)簽示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Android接收和發(fā)送短信的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android接收和發(fā)送短信的實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下2016-08-08Android webview手動(dòng)校驗(yàn)https證書(by 星空武哥)
有些時(shí)候由于Android系統(tǒng)的bug或者其他的原因,導(dǎo)致我們的webview不能驗(yàn)證通過(guò)我們的https證書,最明顯的例子就是華為手機(jī)mate7升級(jí)到Android7.0后,手機(jī)有些網(wǎng)站打不開了,而更新了webview的補(bǔ)丁后就沒(méi)問(wèn)題了2017-09-09Android應(yīng)用中使用ListView來(lái)分頁(yè)顯示刷新的內(nèi)容
這篇文章主要介紹了Android應(yīng)用中使用ListView來(lái)分頁(yè)顯示刷新的內(nèi)容的方法,展示了一個(gè)點(diǎn)擊按鈕進(jìn)行刷新的實(shí)例以及下拉刷新分頁(yè)顯示的要點(diǎn)解析,需要的朋友可以參考下2016-04-04Android Cocos Creator游戲開發(fā)平臺(tái)打包優(yōu)化實(shí)現(xiàn)方案
Cocos Creator是一款輕量、高效、免費(fèi)開源的跨平臺(tái)游戲引擎,同時(shí)也是實(shí)時(shí)3D內(nèi)容創(chuàng)作平臺(tái),不僅支持2D、3D的游戲開發(fā),同時(shí)在HMI、IoT、XR、虛擬人偶等領(lǐng)域,均可提供一套完善的行業(yè)解決方案2022-11-11Android 檢測(cè)鍵盤顯示或隱藏鍵盤的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 檢測(cè)鍵盤顯示或隱藏鍵盤的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-07-07