Comment changer la couleur de l'arrière-plan dans libgdx étiquettes?
Je peux changer la couleur de la police, comme ce
LabelStyle style1 = new LabelStyle(..some font...,
Color.valueOf("FF4500")
);
label.setStyle(style1);
mais comment puis-je changer le fond?
droit maintenant, le fond est le même que le fond d'écran tout entier qui est mis en
méthode render lke ce
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(
1.000f, 0.980f, 0.941f
,1);
OriginalL'auteur | 2013-08-10
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, il faut utiliser la getDrawable() la fonction de l'Image de la classe d'assigner la couleur de votre Étiquette de LabelStyles' arrière-plan Dessiné.
C'est la solution la plus simple que j'ai été en mesure de venir avec et, franchement, c'est juste idiot qu'il n'est pas setBackground() dans la classe Label.
En fait, peut-être que la meilleure solution est de pirater l'Étiquette de la classe et ajouter un setBackground() la méthode à.
[Modifier] assurez-vous de disposer d'Images lorsque vous avez terminé avec eux; c'est à dire labelColor.dispose();
[Mise à jour] @Mitrakov Artem a fait un bon point: La solution ci-dessus affectent toutes les instances de cette LabelStyle. Si ce n'est pas ce que vous voulez, vous pouvez créer un nouveau LabelStyle, utilisez la méthode ci-dessus sur elle, puis l'enregistrer pour le Label. Citant Artem: "Alors je vous recommandons de créer un nouveau style (LabelStyle style = new LabelStyle(étiquette.getStyle());), changer son fond puis de l'appliquer sur l'étiquette (étiquette.setStyle(style);)"
Très bonne solution, mais vous avez réellement changer l'apparence de LabelStyle instance. Cela implique que toutes les étiquettes d'autres avec le même style seront touchés. Donc je vous conseille de créer un nouveau style (
LabelStyle style = new LabelStyle(label.getStyle());
), changer son fond puis de l'appliquer sur l'étiquette (label.setStyle(style);
)Je pense que c'est une grande amélioration.
OriginalL'auteur jwehrle
Vous n'avez pas à changer le fond de l'Étiquette comme ça. Vous avez juste à changer le clearcolour. Suppose que vous savez que.
Pour changer le fond vous avez besoin de changer l'arrière-plan dans le style de l'étiquette. Pour ce faire, je vous recommande d'utiliser un simple
NinePatch
comme toile de fond, (peut être un carré! si le blanc vous pouvez changer la couleur de la ninepatch et la couleur de fond change!)Pour plus d'informations sur ninepatch prendre un coup d'oeil ici libgdx wiki ninepatch
Vous besoin ajouter que ninepatch à un objet de la Peau. Par exemple, comme ceci
Après que vous pouvez obtenir un drawable de la peau que vous pouvez définir comme fond de la
LabelStyle
.voir libgdx API LabelStyle
Vous pouvez également utiliser une simple image bitmap, mais qui ne se réduit à la taille d'étiquette, ce qui provoque dans la plupart des cas de déformation. Un Ninepatch peut être redimensionnée sans avoir de déformation.
il change la couleur du texte, c'est pourquoi j'ai demandé à
que tu ne peux pas juste changer le fond comme ça parce qu'il n'a pas de fond. Vous avez besoin d'ajouter, sur la première befor vous pouvez le modifier. Comme je l'ai dit, si vous utilisez une texture blanche, vous pouvez changer la couleur de toutes les couleurs que vous désirez.
Donc, beaucoup de chatter sur cette. En bref, vous ne pouvez pas modifier ou définir la couleur d'arrière-plan de l'étiquette directement. Directement à, directement à l'arrière-plan de couleur spécifique, j'.e, comme labelStyle.fond = Couleur.NOIR;
OriginalL'auteur BennX