您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Android中怎么實現一個監聽橫豎屏切換功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
ConfigChanges,用于捕獲手機狀態的改變,當橫豎屏切換,屏幕尺寸變化,彈出鍵盤,系統設置改變等條件,就會觸發回調事件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配置參數說明:
“mcc“ 移動國家號碼,由三位數字組成,每個國家都有自己獨立的MCC,可以識別手機用戶所屬國家。
“mnc“ 移動網號,在一個國家或者地區中,用于區分手機用戶的服務商。
“locale“ 所在地區發生變化。
“touchscreen“ 觸摸屏已經改變。
“keyboard“ 鍵盤模式發生變化,例如:用戶接入外部鍵盤輸入。
“keyboardHidden“ 用戶打開手機硬件鍵盤
“navigation“ 導航發生了變化。
“orientation“ 橫豎屏切換。
“fontScale“ 全局字體大小縮放發生改變
重寫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 橫屏
另外:
不設置activity的android:configChanges屬性時,切換橫豎屏會調用各個生命周期方法,橫屏調一次,豎屏調用2次
設置activity的android:configChanges="orientation“屬性時,切換橫豎屏會調用各個生命周期方法,橫屏調一次,豎屏調用1次
設置activity的android:configChanges="orientation|keyboardHidden"時,切換橫豎屏不會調用各個生命周期方法,只會執行onConfigurationChanged方法
關于Android中怎么實現一個監聽橫豎屏切換功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。