Android 如何在libgdx中根据不同的屏幕分辨率缩放图像

Android 如何在libgdx中根据不同的屏幕分辨率缩放图像,android,libgdx,Android,Libgdx,我的libgdx游戏使用480*800图像。它在我的智能手机上运行得非常好,但当我尝试在高端设备上运行它,或者说使用分辨率为800*1280的tab时,出于明显的原因,它只会在屏幕的一角显示图像 我确信它只需要一些相机设置来根据不同的屏幕分辨率进行放大和缩小。请帮助我或提供任何指针。您可以使用视口。 如果要以固定分辨率编程,则要以相对分辨率编程可能会很棘手。您可以使用视口。 如果要按照固定分辨率进行编程,则按照相对分辨率进行编程可能会很棘手。您可以使用上面维护的视口或使用自己的解决方案,如下

我的libgdx游戏使用480*800图像。它在我的智能手机上运行得非常好,但当我尝试在高端设备上运行它,或者说使用分辨率为800*1280的tab时,出于明显的原因,它只会在屏幕的一角显示图像

我确信它只需要一些相机设置来根据不同的屏幕分辨率进行放大和缩小。请帮助我或提供任何指针。

您可以使用视口。

如果要以固定分辨率编程,则要以相对分辨率编程可能会很棘手。

您可以使用视口。


如果要按照固定分辨率进行编程,则按照相对分辨率进行编程可能会很棘手。

您可以使用上面维护的视口或使用自己的解决方案,如下所示:

    public static float SCALE_RATIO = YOUR_IMAGE_WIDTH / Gdx.graphics.getWidth();

    public static Sprite createScaledSprite(Texture texture) {
       Sprite sprite = new Sprite(texture);
       sprite.getTexture().setFilter(TextureFilter.Linear,
                TextureFilter.Linear);
       sprite.setSize(sprite.getWidth() / SCALE_RATIO,
            sprite.getHeight() / SCALE_RATIO);
       return sprite;
    }

您可以使用上面维护的视口,也可以使用自己的解决方案,如下所示:

    public static float SCALE_RATIO = YOUR_IMAGE_WIDTH / Gdx.graphics.getWidth();

    public static Sprite createScaledSprite(Texture texture) {
       Sprite sprite = new Sprite(texture);
       sprite.getTexture().setFilter(TextureFilter.Linear,
                TextureFilter.Linear);
       sprite.setSize(sprite.getWidth() / SCALE_RATIO,
            sprite.getHeight() / SCALE_RATIO);
       return sprite;
    }

您始终可以访问正在使用的相机的宽度和高度。在你的屏幕上,你应该有一个调整大小的方法,你可以用它来调整摄像机的视口大小。然后,您可以按相机大小进行缩放。

您始终可以访问正在使用的相机的宽度和高度。在你的屏幕上,你应该有一个调整大小的方法,你可以用它来调整摄像机的视口大小。然后您可以按相机大小缩放。

我尝试使用FillViewport,但不适用于我。你能分享一些代码片段来帮助我吗?谢谢你的及时回复。因为你甚至都没读过那一页。阅读最后一段,您有3个视口示例。截至2017年,有6个示例我尝试使用FillViewport,但对我不起作用。你能分享一些代码片段来帮助我吗?谢谢你的及时回复。因为你甚至都没读过那一页。阅读最后一段,您有3个视口示例。截至2017年,共有6个示例