android 螢幕切換監聽
阿新 • • 發佈:2019-02-15
昨天,我試著在螢幕切換時,使View顯示在不同的位置,在網上搜索了一些資料,自己做了一段時間,終於完成了功能。
由於螢幕切換會呼叫activity的各個生命週期,所以需要在manifest的activity屬性加上程式碼
android:configChanges="keyboardHidden|orientation|screenSize|locale|layoutDirection"
然後重寫onConfigurationChanged(),加上自己的處理程式碼
@Override protected void onConfigurationChanged(ConfigurationnewConfig) { super.onConfigurationChanged(newConfig); //=========切換螢幕時設定isPortrail的值,從而使PTZ在不同的位置顯示 if (newConfig.orientation == this.getResources().getConfiguration().ORIENTATION_PORTRAIT) { isPortrail = true; ArrayViews(mCurArrayMode, true); } //切換為橫屏 else if (newConfig.orientation == this.getResources().getConfiguration().ORIENTATION_LANDSCAPE) { isPortrail = false; ArrayViews(mCurArrayMode, true); } Log.e("onConfigurationChanged",""+"onConfigurationChanged"); }
程式碼中,我判斷了橫屏和豎屏的情況,讓後顯示不同的佈局。
在自定義的View重寫這個onConfigurationChanged(),當螢幕切換時,會執行三次這段程式碼,原因我也不清楚。