在处理不同的屏幕尺寸时,我为 SD、MD 和 HD 手机/平板电脑使用了 3 包 Assets 。 但是这样做有点烦人,而且会使 APK 变大。 我只想使用我想使用的最大包,比如 HD。 但是如果有人有 3.2"手机,我不想在 320x480 手机上渲染 1280x768 背景..
所以我只是想知道..是否可以使用 libGDX 来调整纹理的大小? 我的意思不是像调整大小,以特定尺寸绘图。我的意思是,在 Texture Packer GUI 中,我可以添加最大的 Assets 包并选择导出 HD 或 MD 包。 是否可以在运行时调整纹理的大小? 因此,如果我在小型手机上玩游戏,纹理的尺寸会更小。
我希望你们明白我想说的是什么。
最佳答案
在低端手机上使用额外的存储空间可能是最好的选择。替代品的吸引力较小:
加载图像时缩小图像。这将延长已经电量不足的手机的加载时间。缩放必须在 CPU 上完成,因为 GPU 可能不支持屏幕尺寸倍数的纹理。此外,您还需要将这些大图像加载到内存中,这将对小手机造成更大的负担。 (你可以这样做一次并缓存结果,这样你就不会惩罚每次启动,但你也可以将文件放入 .APK 中)(你可以将高清图像分成几部分以避免淹没低端图像电话,但这只会进一步增加启动延迟。)如果您仍想尝试,使用 LibGDX,您可以使用 FrameBuffer在运行时从高分辨率图像创建低分辨率图像。
渲染图像时缩小图像。这不太可能可靠地工作,并且需要大量内存占用才能保持图像加载。
要真正了解您在此处优化的内容,请尝试使用所有分辨率构建您的 APK,然后再次仅使用高清图像。我敢打赌差别不会那么大(根据定义,低端图像相对来说不会那么大。)
关于java - libgdx - 在内存中调整纹理大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493935/