Mi chiedo sanno come ottenere il larghezza della mia stringa in pixelCome ottenere una larghezza di stringa in Libgdx?
risposta
BitmapFont API < 1.5.6
Per mesure la larghezza di un String
si utilizza il Font
e ottenere il bounds
del String
, stai per disegnare.
BitmapFont.getBounds(String str).width
È possibile ottenere l'altezza per il diritto di offset per il disegno troppo. Sostituisci semplicemente la larghezza con l'altezza.
In aggiunta per i testi multilinea utilizzare getMultiLineBounds(someString).width
per ottenere i limiti.
BitmapFont API> = 1.5.6
L'API BitmapFont cambiata in 1.5.7 cui v'è un modo diverso per ottenere i limiti ora:
BitmapFont.TextBounds e i getBound sono fatti. Invece, dai la stringa a GlyphLayout e ottieni i limiti usando i suoi campi di larghezza e altezza. È quindi possibile disegnare il testo passando lo stesso GlyphLayout a BitmapFont, il che significa che i glifi non devono essere disposti due volte come in passato.
Esempio:
GlyphLayout layout = new GlyphLayout(); //dont do this every frame! Store it as member
layout.setText("meow");
float width = layout.width;// contains the width of the current set text
float height = layout.height; // contains the height of the current set text
Secondo @Nates risposta: metodo
BitmapFont.getBounds(String str).width
https://stackoverflow.com/a/20759876/619673 chiamante non restituisce sempre la larghezza corretta! Soprattutto quando si riutilizza il font. Se si vuole disegnare il testo, ad esempio in the center of part of view port
, è possibile evitare questo problema utilizzando un altro metodo
BitmapFont.drawWrapped (...) Codice
Esempio:
font.drawWrapped(spriteBatch, "text", x_pos, y_pos, your_area_for_text, BitmapFont.HAlignment.CENTER);
Se si utilizzano gli skin nell'interfaccia utente è una seccatura per trovare il font corretto da inserire in GlyphLayout.
In questo caso, utilizzo un'istanza di etichetta gettata via per calcolare tutto per me, quindi chiedere all'etichetta la larghezza.
Skin skin = getMySkin();
Label cellExample = new Label("888.88888", skin);
cellExample.layout();
float cellWidth = cellExample.getWidth();
Table table = new Table(skin);
table.defaults().width(cellWidth);
// fill table width cells ...
Questa non è la risposta, se si vuole posizionare il testo da soli, ma è utile per fare un layout dell'interfaccia utente stabile e meno dipendente dal contenuto effettivo delle celle.
- 1. Come ottenere una stringa di larghezza
- 2. Come ottenere la larghezza di una stringa in pixel?
- 3. Come allineare una stringa di larghezza fissa?
- 4. Come ottenere una "schermata di caricamento" usando libgdx?
- 5. Come si calcola la larghezza di una stringa in pixel?
- 6. LibGDX: filtraggio di una texture in scala
- 7. Come ottenere la larghezza di una stringa in pixel (/ unità logiche)?
- 8. come misurare con precisione la larghezza di una stringa?
- 9. Figura di larghezza di una stringa in un determinato carattere
- 10. Come ottenere una stringa formattata in OCaml?
- 11. Come posso ottenere una parte di una stringa in C++?
- 12. Come ottenere una stringa invece di una matrice in PowerShell?
- 13. Come ottenere l'ultima lettera di una stringa
- 14. Ottenere una stringa dopo una specifica stringa
- 15. come ottenere l'ultimo carattere di una stringa?
- 16. Come ottenere la larghezza completa in PivotItem
- 17. Come ottenere altezza per NSAttributoString a una larghezza fissa
- 18. Come trovare la larghezza di stringa in C# (in pixel)
- 19. (Java LibGDX) Come si ridimensionano le mie trame in LibGDX?
- 20. Scaling di LibGDX Grafica 2d
- 21. come ottenere il conteggio di '#' in una stringa?
- 22. in javascript, come posso ottenere l'ultimo carattere di una stringa
- 23. Come ottenere il tag title in una stringa di html?
- 24. Come ottenere il primo carattere di una stringa in SQL?
- 25. Come ottenere il numero di caratteri in una stringa: std ::?
- 26. SSIS Come ottenere una parte di una stringa tramite separatore
- 27. dividere una stringa in stringhe sub da larghezza fissa
- 28. Ottenere una stringa SHA-256 di una stringa
- 29. Come ottenere una stringa da dataPackageView.GetDataAsync()
- 30. Misurazione della larghezza dei pixel di una stringa
Inoltre è possibile utilizzare getMultiLineBounds (someString) .width per più testi di riga. –
grazie! problema risolto – LeSam
È deprecato nella versione più recente di libgdx. Non riesco a trovarlo nell'API .... È il loro altro modo di farlo? –