Libgdx根据DPI选择正确的纹理?

时间:2014-12-22 19:26:25

标签: android libgdx

如何在android SDK中实现一个基于dpi的最佳纹理的系统,因为LibGDX是独立于平台的,并且不能使用已经存在的那个?

1 个答案:

答案 0 :(得分:3)

可能我的解决方案不是最好的,但我在实际项目中使用它并且它有效。

Game班级中使用Gdx.graphics.getDensity()方法选择合适的文件夹,将其名称存储在公共字段中并加载资源:

public class MyGame extends Game {

public static String folder;
private AssetManager assets;

@Override
public void create() {
   if (Gdx.graphics.getDensity < 1) {
      folder = "lowDpiImages/";
   } else {
      folder = "highDpiImages/";
   }
   ...
   assets = new AssetManager();
   assets.load(folder + "image.png", Texture.class, paramsNearest);
   ...
}

然后在其他类中使用文件夹名称从AssetManager获取资源:

assets.get(MyGame.folder + "image.png", Texture.class);

您可以编写更复杂的文件夹选择原因的算法; - )