Вам следует открыть для себя Viewports
. Если кратко, то они позволят выбирать стратегии работы с разным разрешениями и соотношениями сторон. Более подробно все описано в Вики: https://libgdx.com/wiki/graphics/viewports
Ниже пример, основаный на шаблоне приложения, генерируемый gdx-setup
package libgdx;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
/** {@link com.badlogic.gdx.ApplicationListener} implementation shared by all platforms. */
public class ViewPortExample extends ApplicationAdapter {
private SpriteBatch batch;
private Texture image;
private OrthographicCamera camera;
private Viewport viewport;
@Override
public void create() {
batch = new SpriteBatch();
image = new Texture("libgdx.png");
camera = new OrthographicCamera();
viewport = new FitViewport(760, 960, camera);
}
@Override
public void render() {
camera.update();
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(image, 0, 0, 156, 32);
batch.end();
}
@Override
public void resize (int width, int height) {
viewport.update(width, height);
}
@Override
public void dispose() {
batch.dispose();
image.dispose();
}
}