2017-08-14 86 views
0

我正在用LibGDX庫(來自badlogicgames)創建一個遊戲,我遇到了一些關於我的精靈的疑問。Java - 從SVG到PNG以編程方式

爲了支持不同的屏幕尺寸,我們通常創建像4或6個不同大小的圖像。我想知道是否使用像SVG文件的矢量圖像可能會有用。

以編程方式獲取SVG文件,獲取屏幕尺寸,然後創建一個合適的PNG文件,並考慮屏幕尺寸是否很明智?

如果唯一的問題是性能,差異是否顯着?也許在應用程序開始時創建所有PNG圖像需要3或4秒,但對於前向圖形來說更好。

我聽說過蠟染爲達到這個目的,有沒有人試過這個?

有沒有人有這種東西的經驗,可以幫助我?

+0

Android支持庫現在支持矢量圖像。庫緩存圖像,所以它們只轉換一次。文檔確實說明由於內存問題,它只能用於相對較小的圖像。 – lionscribe

+0

@lionscribe Android支持庫不支持SVG文件。它支持VectorDrawables,它們不一樣。 SVG文件的一個子集可以轉換爲VectorDrawable文件。 –

+0

正確。我想要的最重要的點是記憶問題。全尺寸的圖像會讓你的記憶成爲可能。一個簡單的想法是,您將圖像文件保存到第一次運行緩存文件,所以通常不必再次創建它們,也不需要在內存中存儲大圖像。 – lionscribe

回答

0

蠟染將適用於一般的Java應用程序。但我不相信它支持Android,因爲它使用了Android沒有的標準Java2D方法。

但是也有針對Android庫,可讓您呈現SVG文件:

聲明:我是AndroidSVG的作者

+0

因此,我將SVG放在我的資產文件夾中,我將它們轉換成帶有AndroidSVG的PNG文件,然後將它們保存在遊戲的緩存中。那麼,爲了完成辯論,你有一個關於在緩存中保存PNG文件的教程嗎?非常感謝 ! –

+0

有一個如何在[AndroidSVG網站](http://bigbadaboom.github.io/androidsvg/)上從SVG創建位圖的示例。您唯一需要做的就是保存爲PNG格式。 –

+0

如何從Android Studio中的libGDX項目實現AndroidSVG? –