2016-04-21 1 views
0

Je suis en utilisant le gestionnaire d'actifs pour générer ma police à l'aide objet FreeTypeFontGeneratorLoader, plus précisément j'utilise ce paramètre actuelLibgdx Freetype police Générateur Outline agissant bizarre

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; 

(je charge ma police dans la variable statique classe actifs)

tout est normal si l'application fonctionne pour la première fois, est ici le texte généré avec capture d'écran de contour:

screenshot

mais après je ferme mon application avec cette ligne

Gdx.app.exit(); 

puis ouvrir mon application à nouveau, les grandes lignes commence maintenant à agir bizarre est la capture d'écran ici de police généré bizarre:

screenshot

Je suis déjà en train d'essayer de disposer de mon gestionnaire d'actifs en cas de disposition d'ApplicationListener dans Gdx, mais parfois ma police agit encore bizarre.

Si j'efface mon traitement exécuté dans toutes les tâches Android, alors la police est à nouveau normale.

Pouvez-vous me dire des solutions possibles pour expliquer pourquoi cela se produit, et avez-vous des suggestions? Thx

+0

cela ressemble à un problème de shaders, et pourrait avoir à faire avec la perte de contexte pour ce shader. alors que TomGrill Jeux suggèrent , cela pourrait être un problème de variable statique. –

Répondre

0

Depuis ce problème se produit parce que mon application ne se ferme pas complètement parce que cette ligne:

Gdx.app.exit(); 

fait ceci:

une sortie annexe de l'application. Sur Android, cela provoquera un appel à une pause() et d'en disposer() un peu de temps à l'avenir, il ne se terminera pas immédiatement votre application »

qui est la raison pour laquelle je change ma façon de fermer mon application avec cette ligne:

System.exit(0); 

alors mon application chargement et générer de nouvelles polices lorsque l'utilisateur ouvre mon application à nouveau.

0

Android conserve parfois des variables statiques (finales) même lorsque l'application a perdu son contexte. Lorsque vous utilisez des variables statiques: assurez-vous d'en disposer au besoin et réglez-les sur null par la suite. Ou n'utilisez pas de statique pour les actifs.