我想知道如何讓我的字符串的寬度像素如何在Libgdx中獲取字符串寬度?
22
A
回答
56
BitmapFont API < 1.5.6
要MESURE您使用Font
一個String
的寬度,並獲得String
的bounds
,你要畫畫。
BitmapFont.getBounds(String str).width
你可以得到高度爲適合繪製過偏移。只需用高度替換寬度即可。
此外,多行文本使用getMultiLineBounds(someString).width
來獲得界限。
BitmapFont API> = 1.5.6
的BitmapFont API 1.5.7更改,因此有不同的方式來獲得邊界現在:
BitmapFont.TextBounds和getBounds完成。相反,將字符串賦予GlyphLayout並使用其寬度和高度字段獲取邊界。然後,您可以通過將相同的GlyphLayout傳遞給BitmapFont來繪製文本,這意味着不必像過去那樣佈置兩次字形。
例子:
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
4
根據@Nates答案:https://stackoverflow.com/a/20759876/619673調用方法
BitmapFont.getBounds(String str).width
並不總是返回正確的寬度!特別是當你重新使用字體。
font.drawWrapped(spriteBatch, "text", x_pos, y_pos, your_area_for_text, BitmapFont.HAlignment.CENTER);
0
如果: 如果你想畫例如in the center of part of view port
文本,可以通過其他方法
BitmapFont.drawWrapped(...)
示例代碼避免這個問題你在用戶界面中使用皮膚是一個麻煩,找出正確的字體飼料到GlyphLayout。
在這種情況下,我使用標籤的扔掉實例來爲我找出所有東西,然後問標籤的寬度。
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 ...
這不是問題的答案,如果你想給自己定位文本,但它是使一個UI佈局穩定,較少依賴於細胞的實際內容是有用的。
相關問題
- 1. 如何在Swift iOS8中正確獲取字符串的寬度?
- 2. 如何獲得字符串的寬度
- 3. 如何獲取字符串的像素寬度和高度?
- 4. 如何在iOS Objective-C中獲取XYZ字體字符串的寬度?
- 5. 如何以像素爲單位獲取字符串的寬度?
- 6. 如何根據寬度值獲取字符串部分?
- 7. 獲取像素(PHP)中字符串的寬度和高度
- 8. 如何獲得在java中的字符串的寬度
- 9. 獲取字符寬度在Javascript
- 10. 如何獲取字符串長度
- 11. 如何在Java Swing中獲取工具提示文本字符串寬度?
- 12. 在JS中獲取字符串長度
- 13. 在StringWriter中獲取字符串長度?
- 14. 獲取字體的字符寬度
- 15. 如何獲取字符串數組的字符串長度?
- 16. 如何獲得普通c中字符串的寬度#
- 17. 在Inno Setup中獲取字符串的寬度和高度Pascal腳本
- 18. 在Javascript中測量字符串寬度
- 19. 如何從JAVA中的FontMetrics獲取正確的字符串寬度
- 20. 在字符串中獲取字符串
- 21. 如何在pt或inc中獲取字體寬度和高度?
- 22. 如何在JSON中獲取字符串?
- 23. 如何在ViewModel中獲取ContentControl寬度?
- 24. 如何獲取文字寬度?
- 25. 如何在PostgreSQL中獲取輸入字符串的長度
- 26. 如何在PHP中獲取字符串的像素長度?
- 27. 如何在PostScript中獲取字符串的高度指標?
- 28. 如何在Perl中獲取字符串的長度?
- 29. 如何在PHP中獲取字符串的確切長度?
- 30. 如何在PHP中獲取字符串後的字符串?
也可以使用getMultiLineBounds(someString).width爲多行文本。 –
謝謝你!問題已解決 – LeSam
在較新版本的libgdx中不推薦使用它。我無法在API中找到它......他們的另一種方式是做到這一點嗎? –