如何實現一個採用基於dpi的最佳紋理的系統,像android SDK一樣,因爲LibGDX是獨立於平臺的,並且不能使用已有的系統?Libgdx基於DPI選擇正確的紋理?
回答
可能是我的解決方案不是最好的,但我用它在真正的項目,它的工作。
在你Game
類使用Gdx.graphics.getDensity()
方法來選擇相應的文件夾,在公共領域的存儲它的名字並載入您的資產:在你其他類中使用的文件夾名稱從AssetManager
獲得資產
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);
...
}
然後:
assets.get(MyGame.folder + "image.png", Texture.class);
您可以編寫更復雜的文件夾選擇算法的原因;-)
這是非常有幫助的。我剛剛實現了這一點,似乎工作正常。我還有一個問題。我嘗試了getDesnity方法,並且發現我的密度將被舍入。例如,在213 dpi上,它將是240 dpi,意思是1.5比例。這是正常的嗎? – Andrew
這沒關係。打開這個[doc](https://developer.android.com/reference/android/util/DisplayMetrics.html#density)並閱讀'Fields'中的'public float density'。它的值由LibGDX中的Android後端的'getDensity()'方法返回。 – Rara
- 1. libgdx spritebatch沒有繪製基於紋理的原點
- 2. 網格上的紋理渲染不正確Libgdx
- 3. LibGDX 3D模型紋理不正確的渲染
- 4. 爲什麼我的libGDX TextureAtlas不正確地渲染spritesheet紋理?
- 5. Libgdx紋理動畫
- 6. LIBGDX - 紋理故障
- 7. LibGDX - 圓形紋理
- 8. LibGdx紋理包裝
- 9. libGDX紋理「拉伸」
- 10. 切割紋理libgdx
- 11. 圓形紋理libGdx
- 12. 如何使用libgdx assetmanager正確加載紋理
- 13. 正確處理LibGDX AssetManager
- 14. 正確縮放紋理
- 15. 紋理渲染不正確
- 16. OpenGL正確顯示紋理
- 17. LibGDX:垂直滾動紋理
- 18. libGDX陣列紋理錯誤
- 19. libgdx SpriteBatch渲染到紋理
- 20. Libgdx 3D紋理透明度
- 21. LibGDX紋理可繪製?
- 22. Libgdx遊戲 - 紋理縮放
- 23. Android Studio Libgdx黑色紋理
- 24. LibGDX重複紋理區域
- 25. LibGDX紋理不會繪製
- 26. LibGDX紋理滲血問題
- 27. LibGDX紋理渲染順序
- 28. 紋理灰度在libgdx
- 29. 居中一個紋理LibGDX
- 30. Libgdx個人參考紋理
您可能想要把你發佈的東西放到一些更集中的東西上。想象一下,你正在寫一封電子郵件給你的同事。我們很難閱讀段落和段落,並找出你想要的。給出幾個背景句子,解釋你需要什麼,然後明確地陳述你的問題。這樣,我們就能更容易地幫助你。 –
http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/resolvers/ResolutionFileResolver.html – Xoppa
解決方案文件句柄不是我正在尋找的......需要一個基於預定義分辨率的一組圖像,而在android中,繪圖是基於dpi選擇的......這是一個很大的區別 – Andrew