我知道如何在活动课程中做到这一点,但这不符合我的需要。在我扩展 View 的类中,一旦调用了一个方法,我希望锁定屏幕方向。然后一旦调用另一种方法,我希望它被解锁。
有没有一种方法可以在我的类中扩展视图?
谢谢。
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
setContentView(this.gameView);
if (this.gameView.isOrientationChange() == false) {
// Stop the screen orientation changing during an event
switch (this.getResources().getConfiguration().orientation) {
case Configuration.ORIENTATION_PORTRAIT:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Configuration.ORIENTATION_LANDSCAPE:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
else {
// allow screen rotations
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
}
在扩展 View 的类中,有一个orientationChange 布尔字段。这通过指示是否可以更改设备方向的方法来更改。这有效,但是当方向改变时屏幕尺寸也会改变。所以如果有很多代码依赖于大小并且是定时的,那么这可能会导致比解决更多的问题。
也许我有一个方法,只需写下:
将layoutParams.screenOrientation
值设置为:ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
或ActivityInfo.SCREEN_ORIENTATION_LOCKED
然后,调用addView
或updateViewLayout
更新此 LayoutParams。
我认为您正在寻找的是 configChanges 参见文档-> http://developer.android.com/reference/android/R.attr.html#configChanges