You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决高分辨率设备下LibGDX视图端口出现黑条的问题?

解决LibGDX虚拟设备顶部黑条问题

问题分析

你使用LibGDX开发游戏,在Android Studio的6.71英寸(1440x3120)虚拟设备测试时顶部出现黑条,核心问题出在Viewport适配逻辑、相机位置设置,以及可能未处理Android系统状态栏挤占空间这几点上。

修复步骤

1. 修正Resize方法的Viewport适配逻辑

你的resize方法手动设置相机位置会干扰Viewport的自动居中适配,修改为:

@Override
public void resize(int width, int height){
    // 第二个参数传true,让Viewport自动将相机居中,无需手动调整
    viewport.update(width, height, true);
}

2. 调整Viewport基准尺寸匹配设备比例

目标设备是竖屏比例(1440:3120≈9:19.5),而你当前用的1920x1080是横屏16:9比例,建议改为竖屏基准尺寸:

@Override
public void create () {
    batch = new SpriteBatch();
    img = new Texture("mainMenuBackground.png");
    camera = new OrthographicCamera();
    // 改为竖屏基准尺寸,更贴近设备比例
    viewport = new FillViewport(1080, 1920, camera);
    viewport.apply();
}

3. 隐藏Android系统状态栏

虚拟设备的状态栏会挤占游戏画面空间,需设置全屏模式:

  • 方式1:修改AndroidManifest.xml
<activity android:name=".AndroidLauncher"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
</activity>
  • 方式2:在AndroidLauncher的onCreate中添加代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View decorView = getWindow().getDecorView();
    // 隐藏状态栏、导航栏并设置沉浸式
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
    decorView.setSystemUiVisibility(uiOptions);
}

4. 确保图片覆盖整个Viewport

绘制图片时按Viewport尺寸拉伸,避免用图片原始尺寸导致留白:

@Override
public void render () {
    camera.update();
    ScreenUtils.clear(1, 0, 0, 1);
    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    // 按Viewport尺寸绘制图片,填满整个可视区域
    batch.draw(img, 0, 0, viewport.getWorldWidth(), viewport.getWorldHeight());
    batch.end();
}

其他Viewport备选方案

如果FillViewport仍不符合需求,可尝试:

  • StretchViewport:强制拉伸图片填满屏幕,无黑条但可能导致画面变形
  • FitViewport:保持画面比例,黑条会均匀分布在上下/左右,而非仅顶部

内容的提问来源于stack exchange,提问作者Libgdxnewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:11:19