如何在android SDK中实现一个基于dpi的最佳纹理的系统,因为LibGDX是独立于平台的,并且不能使用已经存在的那个?
答案 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);
您可以编写更复杂的文件夹选择原因的算法; - )