2

我想使用分辨率文件解析器为我的应用程序选择正确的纹理图集,因此我创建了具有几个分辨率的 RFR:

Resolution _568x1136 = new Resolution(568, 1136, ".568x1136");
Resolution _1200x1920 = new Resolution(568, 1136, ".1200x1920");
ResolutionFileResolver resolver = new ResolutionFileResolver(new InternalFileHandleResolver(), _568x1136, _1200x1920);

manager = new AssetManager();
manager.setLoader(TextureAtlas.class, new TextureAtlasLoader(resolver));

现在我想知道,我该如何命名/放置文件??????

我尝试在 .png 和 .atlas(.png.568.1136 等)后面添加 .1200x1920 和 .568x1136,但这没有用。

我也尝试使用文件夹(parent/568x1136/file.atlas)。

我尝试通过以下方式加载图集:

manager.load("data/atlas/splashscreen/splashscreen.atlas", TextureAtlas.class);                     // First make sure the splash screen
manager.finishLoading();                                                                            // is loaded before loading anything
Assets.splashAtlas = manager.get("data/atlas/splashscreen/splashscreen.atlas", TextureAtlas.class); // else 
4

1 回答 1

5
// no dots were used for the "suffix"
Resolution _568x1136 = new Resolution(568, 1136, "568x1136");
Resolution _1200x1920 = new Resolution(568, 1136, "1200x1920");
ResolutionFileResolver resolver = new ResolutionFileResolver(new InternalFileHandleResolver(), _568x1136, _1200x1920);

manager.load("data/atlas/splashscreen/splashscreen.atlas", TextureAtlas.class);                     
manager.finishLoading();                                                                      
Assets.splashAtlas = manager.get("data/atlas/splashscreen/splashscreen.atlas", TextureAtlas.class);

尽管有关 stackoverflow 的其他答案ResolutionFileResolver,它实际上确实使用文件夹层次结构来检索正确的图像。如果我们假设这568x1136将是最佳匹配分辨率,它会立即搜索data/atlas/splashscreen/568x1136/splashscreen.atlas。如果找不到此文件,则回退将只是data/atlas/splashscreen/splashscreen.atlas. 如果此文件也不存在,则会发生异常。

所以“后缀”这个名字不再正确了。实施似乎随着时间而改变。“后缀”不再附加到文件中。

于 2013-11-11T21:21:57.133 回答