我知道如何在活动类中执行此操作,但这不符合我的需要。在扩展View的类中,一旦调用了一个方法,我希望屏幕方向被锁定。然后,一旦调用另一种方法,我希望它能够被解锁。
有没有办法可以在我的课程中扩展View?
感谢。
答案 0 :(得分:1)
@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布尔字段。这是通过指示是否可以改变设备方向的方法来改变的。这有效,但是当方向改变时,屏幕尺寸也会改变。因此,如果有很多代码依赖于大小并且是定时的,那么这可能会导致比解决更多的问题。
答案 1 :(得分:0)
我认为你在找什么,是configChanges看到doc - > http://developer.android.com/reference/android/R.attr.html#configChanges
答案 2 :(得分:0)
也许我有一个方法,只记下:
将layoutParams.screenOrientation
值设置为:ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
或ActivityInfo.SCREEN_ORIENTATION_LOCKED
然后,请致电addView
或updateViewLayout
更新此LayoutParams。