昨天,我試著在屏幕切換時,使View顯示在不同的位置,在網上搜索了一些資料,自己做了一段時間,終于完成了功能。
由于屏幕切換會調用activity的各個生命周期,所以需要在manifest的activity屬性加上代碼
android:configChanges="keyboardHidden|orientation|screenSize|locale|layoutDirection"
然后重寫onConfigurationChanged(),加上自己的處理代碼
@Overrideprotected void onConfigurationChanged(Configuration newConfig) { 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(),當屏幕切換時,會執行三次這段代碼,原因我也不清楚。
新聞熱點
疑難解答