Toile.drawText(...) n'a pas l'impression de saut de ligne
J'ai essayé d'écrire un texte sur une surface d'affichage que j'ai créé. Il fonctionne très bien, si le titre est faux, et il n'y a pas de saut de ligne a été ajoutée au texte. Mais si j'ajoute un titre et, par conséquent, un saut de ligne, le saut de ligne n'est pas imprimé comme prévu, mais il y a ce symbole [] imprimé.
Toutes les allusions pourquoi?
@Override
public void drawObject() {
String text = "";
if (title) {
text = getGameBoard().getGame().getForeignProfile().getName() + "\n";
}
text = text + getScoreAsString();
getGameBoard().getCanvas().drawText(text, 0, text.length(), getPosition().getX(), getPosition().getY(), getPaint());
}
Vous devez vous connecter pour publier un commentaire.
L' [] symbole est probablement votre caractère de saut de ligne. Pour quelque raison que ce soit, drawText() ne sait pas comment gérer les retours à la ligne.
Soit enlever le saut de ligne, ou appelez drawText() deux fois avec un décalage de position en Y pour simuler un retour à la ligne.
Vous pouvez essayer quelque chose comme ce qui suit pour dessiner du texte avec des retours à la ligne (:
dee réponse est génial. Le code ci-dessous est basé sur dee réponse, mais avec quelques modifications pour l'préférences personnelles:
Ajouter 20% de la hauteur de l'écart entre les lignes
En continuant à améliorer à la fois Dee et FrinkTheBrave réponses. J'ai ajouté un Rect à la méthode pour permettre de tirer dans la largeur de la zone. Va chercher à le modifier pour sélectionner une taille de police appropriée et de s'assurer qu'il s'adapte à la bonne hauteur de la zone.
Cela vous permettra de spécifier la largeur de la ligne que vous souhaitez écrire, ce qui est très utile pour rompre un sans mise en forme de chaîne de texte dans les mêmes lignes de longueur et de dessin à une toile.
Cette réponse comprend cet excellent extrait de code trouvé ici dans une réponse précédente par user850688 https://stackoverflow.com/a/11353080/1759409