怪怪

2016-04-21 66 views
0

我使用的資產管理公司,用於使用對象 FreeTypeFontGeneratorLoader我的字體,特別是我使用這個當前參數怪怪

FreeTypeFontLoaderParameter parameter = new FreeTypeFontLoaderParameter(); 
parameter.fontFileName = "fonts/myFont.ttf"; 
parameter.fontParameters.size = size; 
parameter.fontParameters.minFilter = Texture.TextureFilter.Linear; 
parameter.fontParameters.magFilter = Texture.TextureFilter.Linear; 
if(withStroke) { 
    parameter.fontParameters.borderStraight = true; 
    parameter.fontParameters.borderColor = Color.BLACK; 
    parameter.fontParameters.borderWidth = 1.5f; 
} 
parameter.fontParameters.color = Assets.fontColor; 

Libgdx FreeType字體生成綱要(然後我打開我的字體在靜態變量資產類)

一切都是正常的,如果應用程序在第一次運行時, 這裏是輪廓截圖生成的文本:

screenshot

但之後,我用這條線

Gdx.app.exit(); 

,然後再次打開我的應用程序關閉我的應用程序,輪廓現在開始在這裏怪怪的 是怪異產生字體的截圖:

screenshot

我已經試圖在我的資產管理器中處理ApplicationListener到Gdx中,但有時我的字體仍然很奇怪。

如果我清除我的處理在所有任務android中運行,那麼字體再次正常。

你能告訴我可能的解決方案嗎?你有什麼建議嗎? Thx

+0

這看起來像一個着色器的問題,並可能與失去上下文這個shader做。因此,作爲TomGrill遊戲建議,這可能是一個靜態變量問題。 –

回答

0

因爲這個問題發生,因爲我的應用程序沒有完全閉合,因爲這條線:

Gdx.app.exit(); 

只是這樣做:

計劃從應用程序中退出。在Android上,這會造成呼叫暫停()和Dispose()方法一段時間,在未來,它不會立即完成您的應用程序」

這就是爲什麼我改變我的方式使用該線收我的應用程序:

System.exit(0); 

然後我的應用程序加載和生成當用戶再次打開我的應用程序的新字體。

0

即使應用程序丟失其上下文,Android有時仍會保留靜態(最終)變量。

使用靜態變量時:確保在需要時處置,並在之後將它們設置爲null。或者不要使用靜態資產。