0

我知道如何在活动课程中做到这一点,但这不符合我的需要。在我扩展 View 的类中,一旦调用了一个方法,我希望锁定屏幕方向。然后一旦调用另一种方法,我希望它被解锁。

有没有一种方法可以在我的类中扩展视图?

谢谢。

4

3 回答 3

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 布尔字段。这通过指示是否可以更改设备方向的方法来更改。这有效,但是当方向改变时屏幕尺寸也会改变。所以如果有很多代码依赖于大小并且是定时的,那么这可能会导致比解决更多的问题。

于 2013-05-03T12:03:45.900 回答
0

也许我有一个方法,只需写下:

layoutParams.screenOrientation值设置为:ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIEDActivityInfo.SCREEN_ORIENTATION_LOCKED

然后,调用addViewupdateViewLayout更新此 LayoutParams。

于 2014-09-26T10:44:17.603 回答
0

我认为您正在寻找的是 configChanges 参见文档-> http://developer.android.com/reference/android/R.attr.html#configChanges

于 2013-05-02T23:09:14.640 回答