Java LibGDX:Screenresize从横向更改为纵向后不起作用

Java LibGDX:Screenresize从横向更改为纵向后不起作用,java,android,android-studio,libgdx,Java,Android,Android Studio,Libgdx,我正在使用一个应用程序,图形效果很好,直到我切换到肖像模式。现在,图形没有按照我想要的方式调整大小,触摸坐标也不是它们应该位于的位置(像以前一样)。我应该改变什么来正确调整图像和所有内容的大小 public class MainMenu implements Screen { public MainMenu(){ } @Override public void render(float delta) { Gdx.gl.glClearColor(0, 0, 0

我正在使用一个应用程序,图形效果很好,直到我切换到肖像模式。现在,图形没有按照我想要的方式调整大小,触摸坐标也不是它们应该位于的位置(像以前一样)。我应该改变什么来正确调整图像和所有内容的大小

public class MainMenu implements Screen  {
   public MainMenu(){
   }
   @Override
   public void render(float delta) {
      Gdx.gl.glClearColor(0, 0, 0, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      batch.begin();
      batch.setColor(bakgrund.getColor());
      bakgrund.draw(batch);
      bakgrund.setSize(1100,600);
      batch.end();
      stage.act(delta);
      stage.draw();
      tweenManager.update(delta);
   }
   @Override
   public void resize(int width, int height) {
       table.invalidateHierarchy();
       behindTable.invalidateHierarchy();
       batch.getProjectionMatrix().setToOrtho2D(0, 0, width, height);
       viewport.update(width, height, true);
   }
   @Override
   public void show() {
       stage = new Stage();
       leaf = new Sprite(new Texture("leaf.png"));
       Image leaf2 = new Image(new SpriteDrawable(leaf));
       bakgrund1 = new Sprite(new Texture("quizchampionsnew.jpg"));
       Image bakgrund11 = new Image(new SpriteDrawable(bakgrund1));
       batch = new SpriteBatch();
       bakgrund = new Sprite(new Texture("vit.jpg"));
       camera = new OrthographicCamera();
       viewport = new ExtendViewport(800, 600, camera);
       stage.getHeight();
       stage.getWidth();
       Gdx.input.setInputProcessor((stage));
       behindTable = new Table();
       behindTable.setFillParent(true);
       table = new Table();
       table.setFillParent(true);
       Gdx.app.setLogLevel(Application.LOG_DEBUG);
       SmartFontGenerator fontGen = new SmartFontGenerator();
       FileHandle exoFile = Gdx.files.internal("font/Merienda-Regular.ttf");
       BitmapFont fontSmall = fontGen.createFont(exoFile, "exo-small", 24);
       BitmapFont fontMedium = fontGen.createFont(exoFile, "exo-medium", 48);
       BitmapFont fontLarge = fontGen.createFont(exoFile, "exo-large", 64);
       Label.LabelStyle smallStyle = new Label.LabelStyle();
       smallStyle.font = fontSmall;
       Label.LabelStyle mediumStyle = new Label.LabelStyle();
       mediumStyle.font = fontMedium;
       Label.LabelStyle largeStyle = new Label.LabelStyle();
       largeStyle.font = fontLarge;
       menuButton = new Sprite(new Texture("back.png"));
       menuButton1 = new Image(new SpriteDrawable(menuButton));
       menuButton1.setPosition(4400, 353);
       menuButton1.setScaleX(0.3f);
       menuButton1.setScaleY(0.3f);
       compButton = new Sprite(new Texture("back.png"));
       compButton.setColor(0,0,0,0);
       compButton1 = new Image(new SpriteDrawable(compButton));
       compButton1.setPosition(340, 255);
       compButton1.setScaleX(0.7f);
       compButton1.setScaleY(0.465f);
       itemshopButton = new Sprite(new Texture("back.png"));
       itemshopButton.setColor(0,0,0,0);
       itemshopButton1 = new Image(new SpriteDrawable(itemshopButton));
       itemshopButton1.setPosition(340, 142);
       itemshopButton1.setScaleX(0.7f);
       itemshopButton1.setScaleY(0.465f);
       stage.setViewport(viewport);
       tweenManager = new TweenManager();
       Tween.registerAccessor(Actor.class, new ActorAccessor());
       behindTable.add(bakgrund11).center().row();
       stage.addActor(behindTable);
       stage.addActor(table);
       stage.addActor(menuButton1);
       stage.addActor(compButton1);
       stage.addActor(itemshopButton1);
       menuButton1.addListener(new ClickListener() {
           public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
               System.out.println("MainMenu");
               backgroundMusic.pause();
               facebookApi.signIn();
               //  ((Game) Gdx.app.getApplicationListener()).setScreen(new QuizPlay());
               return false;
           }
       });
       compButton1.addListener(new ClickListener() {
           public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
               System.out.println("MainMenu");
               backgroundMusic.pause();
               ((Game) Gdx.app.getApplicationListener()).setScreen(new PlayMenu());
               return false;
           }
       });
       itemshopButton1.addListener(new ClickListener() {
           public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
               System.out.println("MainMenu");
               backgroundMusic.pause();
               ((Game) Gdx.app.getApplicationListener()).setScreen(new QuizShop());
               return false;
           }
       }); 
   }
   @Override
   public void pause() {
   }
   @Override
   public void resume() {
   }
   @Override
   public void hide() {
   }
   @Override
   public void dispose() {
       stage.dispose();
       batch.dispose();
       bakgrund.getTexture().dispose();
       backgroundMusic.dispose();
   }
}
现在的情况如何:

按照这里的示例进行:-它正在工作。在Stage的构造函数中设置视口,也许这就是所需的全部内容。

将视口添加到Stage:
Stage=newstage(Viewport)