如何在Android Libgdx中以纵向和其他屏幕设置主屏幕?

时间:2016-06-20 12:04:40

标签: java android libgdx

我想在Android中使用libgdx以纵向模式设置主屏幕(应用程序的第一个屏幕)以及横向模式下的其他屏幕。 如果我更改清单文件,则它将该模式应用于所有屏幕,否则它将根据屏幕的旋转而改变。我不要那个。我希望主屏幕在纵向(固定)和其他在横向模式(固定)。 请帮帮我。

2 个答案:

答案 0 :(得分:1)

你可以使用一个哈特勒。 并使你的androidclass实现该处理程序并相应地改变方向

创建一个接口名称CustomHandler(编辑:自定义处理程序类进入您的核心模块) 像这样:

public interface CustomHandler {
public void setOrientationPortrait();
public void setOrientationLandscape();
}

现在让你的android类像这样实现CustomHandler

public class AndroidLauncher extends AndroidApplication implements CustomHandler {

    @Override
    public void setOrientationPortrait(){
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

    @Override
    public void setOrientationLandscape(){
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        androidPref = getSharedPreferences("MyPref", Context.MODE_PRIVATE);

        View gameView = initializeForView(new GameClass(this), config);
        setContentView(gameView);    
}

并在你的GameClass核心模块中

只要您想要更改方向,只需致电

public static CustomHandler handler;

public GameClass(CustomHandler handler){
    this.handler = handler;
}

然后在任何屏幕或舞台上

像这样称呼它

GameClass.handler.setOrientationPortait();
//or
GameClass.handler.setOrientationLandscape();

答案 1 :(得分:0)

您可以使用:

  

用于纵向屏幕方向

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  

用于横向屏幕方向

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);