Android監(jiān)聽橫豎屏切換功能
偶然在項(xiàng)目中用到播放視頻時(shí),需要橫屏將視頻全屏播放,所以需要監(jiān)聽屏幕的橫豎屏切換事件。
橫豎屏切換監(jiān)聽效果:
ConfigChanges,用于捕獲手機(jī)狀態(tài)的改變,當(dāng)橫豎屏切換,屏幕尺寸變化,彈出鍵盤,系統(tǒng)設(shè)置改變等條件,就會(huì)觸發(fā)回調(diào)事件onConfigurationChanged。讓Activity捕捉到該事件,需要做如下步驟:
聲明Activity需要捕捉的事件類型,在manifest的配置:
<activity android:name=".MainActivity" android:configChanges="orientation|keyboard|layoutDirection|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
configChanges配置參數(shù)說明:
“mcc“ 移動(dòng)國(guó)家號(hào)碼,由三位數(shù)字組成,每個(gè)國(guó)家都有自己獨(dú)立的MCC,可以識(shí)別手機(jī)用戶所屬國(guó)家。
“mnc“ 移動(dòng)網(wǎng)號(hào),在一個(gè)國(guó)家或者地區(qū)中,用于區(qū)分手機(jī)用戶的服務(wù)商。
“l(fā)ocale“ 所在地區(qū)發(fā)生變化。
“touchscreen“ 觸摸屏已經(jīng)改變。
“keyboard“ 鍵盤模式發(fā)生變化,例如:用戶接入外部鍵盤輸入。
“keyboardHidden“ 用戶打開手機(jī)硬件鍵盤
“navigation“ 導(dǎo)航發(fā)生了變化。
“orientation“ 橫豎屏切換。
“fontScale“ 全局字體大小縮放發(fā)生改變
重寫Activity中的onConfigurationChanged方法,加上自己的處理事件。
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ Toast.makeText(getApplicationContext(), "橫屏", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getApplicationContext(), "豎屏", Toast.LENGTH_SHORT).show(); } }
Configuration.ORIENTATION_LANDSCAPE 豎屏
Configuration.ORIENTATION_PORTRAIT 橫屏
另外:
- 不設(shè)置activity的android:configChanges屬性時(shí),切換橫豎屏?xí){(diào)用各個(gè)生命周期方法,橫屏調(diào)一次,豎屏調(diào)用2次
- 設(shè)置activity的android:configChanges="orientation“屬性時(shí),切換橫豎屏?xí){(diào)用各個(gè)生命周期方法,橫屏調(diào)一次,豎屏調(diào)用1次
- 設(shè)置activity的android:configChanges="orientation|keyboardHidden"時(shí),切換橫豎屏不會(huì)調(diào)用各個(gè)生命周期方法,只會(huì)執(zhí)行onConfigurationChanged方法
總結(jié)
以上所述是小編給大家介紹的Android監(jiān)聽橫豎屏切換功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android開發(fā)Jetpack組件Room用例講解
這篇文章主要為大家介紹了Android?Jetpack組件Room的使用案例的詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02Kotlin中內(nèi)置函數(shù)的用法和區(qū)別總結(jié)
眾所周知相比Java, Kotlin提供了不少高級(jí)語法特性。對(duì)于一個(gè)Kotlin的初學(xué)者來說經(jīng)常會(huì)寫出一些不夠優(yōu)雅的代碼。下面這篇文章主要給大家介紹了關(guān)于Kotlin中內(nèi)置函數(shù)的用法和區(qū)別的相關(guān)資料,需要的朋友可以參考下2018-06-06解決django 多個(gè)APP時(shí) static文件的問題
這篇文章主要介紹了解決django 多個(gè)APP時(shí) static文件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android使用自定義View實(shí)現(xiàn)橫行時(shí)間軸效果
這篇文章主要給大家介紹了關(guān)于Android使用自定義View實(shí)現(xiàn)橫行時(shí)間軸效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Android具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12