Tôi tự hỏi biết làm thế nào để có được những rộng của chuỗi của tôi bằng pixelLàm cách nào để có chiều rộng chuỗi trong Libgdx?
Trả lời
BitmapFont API < 1.5.6
Để mesure chiều rộng của một String
bạn sử dụng Font
của bạn và nhận được bounds
của String
, bạn sẽ vẽ.
BitmapFont.getBounds(String str).width
Bạn có thể lấy chiều cao để cho quyền bù đắp cho việc vẽ quá. Chỉ cần thay chiều rộng bằng chiều cao.
Ngoài các văn bản nhiều dòng, hãy sử dụng getMultiLineBounds(someString).width
để nhận giới hạn.
BitmapFont API> = 1.5.6
API BitmapFont thay đổi trong 1.5.7 nên có một cách khác nhau để có được những giới hạn bây giờ:
BitmapFont.TextBounds và getBounds được thực hiện. Thay vào đó, hãy cung cấp chuỗi cho GlyphLayout và nhận các giới hạn sử dụng các trường chiều rộng và chiều cao của nó. Sau đó, bạn có thể vẽ văn bản bằng cách chuyển cùng một GlyphLayout với BitmapFont, có nghĩa là các hình tượng không phải được đặt ra hai lần như trước đây.
Ví dụ:
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
Theo @Nates câu trả lời: https://stackoverflow.com/a/20759876/619673 gọi phương thức
BitmapFont.getBounds(String str).width
phải lúc nào cũng trả về chiều rộng thích hợp! Đặc biệt là khi bạn đang sử dụng lại phông chữ. Nếu bạn muốn vẽ văn bản ví dụ in the center of part of view port
, bạn có thể tránh vấn đề này bằng cách sử dụng phương pháp khác
BitmapFont.drawWrapped (...) mã
Ví dụ:
font.drawWrapped(spriteBatch, "text", x_pos, y_pos, your_area_for_text, BitmapFont.HAlignment.CENTER);
Nếu bạn sử dụng giao diện người dùng trong giao diện người dùng, thật khó để tìm ra phông chữ chính xác để nạp vào GlyphLayout.
Trong trường hợp này tôi sử dụng một trường hợp ném đi của Nhãn để tìm mọi thứ cho tôi, sau đó hỏi Nhãn cho chiều rộng.
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 ...
Đây không phải là câu trả lời nếu bạn muốn bố cục văn bản ổn định và ít phụ thuộc vào nội dung thực tế của ô.
- 1. Cách lấy chiều rộng chuỗi
- 2. SDK iPhone: Làm cách nào để đo chiều rộng và chiều cao của chuỗi bằng Quartz?
- 3. Tôi làm cách nào để databind Chiều rộng của Chiều rộng hoặc Độ rộng của hàngDefID?
- 4. (Java LibGDX) Làm cách nào để thay đổi kích thước họa tiết của tôi trong LibGDX?
- 5. Làm cách nào để định dạng chuỗi thành trường chiều rộng cố định trong .Net?
- 6. Làm cách nào để tạo một hộp kiểm có Chiều rộng & Chiều cao là 16px?
- 7. Làm cách nào để tính chiều rộng của một chuỗi theo pixel?
- 8. Làm cách nào để tính chiều rộng titleView tối ưu?
- 9. Làm cách nào để đặt chiều rộng QWidget?
- 10. Làm thế nào để có chiều rộng/chiều cao mới của bố cục gốc trong onConfigurationChanged?
- 11. Làm cách nào để có chiều rộng/chiều rộng của bố cục phù hợp với div tuyệt đối?
- 12. Làm cách nào để đặt chiều rộng của dijit.form.Select?
- 13. Làm thế nào để làm cho textarea lấp đầy chiều rộng của chiều rộng của nó?
- 14. Làm cách nào để giới hạn chiều rộng div?
- 15. Làm thế nào để tìm chiều rộng chuỗi trong C# (tính bằng pixel)
- 16. Có cách nào để có chiều cao và chiều rộng của thanh cuộn không?
- 17. Làm thế nào để tính toán chiều rộng chuỗi trong iText?
- 18. Làm cách nào để vẽ văn bản bằng Libgdx/Java?
- 19. Làm cách nào để định dạng chuỗi bằng nội suy chuỗi trong Scala dưới dạng chuỗi có chiều rộng cố định?
- 20. Làm thế nào để có được chiều rộng và chiều cao của trang PDF?
- 21. Đo chiều rộng pixel của một chuỗi
- 22. làm cách nào để đo chiều rộng văn bản trong các động từ?
- 23. Làm cách nào để tính chiều cao và chiều rộng màn hình tại thời gian chạy?
- 24. Làm thế nào để có được chiều cao và chiều rộng thiết bị khi chạy?
- 25. Làm cách nào để phát hiện bàn phím libgdx
- 26. Làm cách nào để tạo GridView có thể kéo giãn trong Android để mở rộng chiều rộng Cột thành bất kỳ phần mở rộng nào?
- 27. LibGDX - Làm thế nào để làm mịn diễn viên có thể vẽ được khi mở rộng giai đoạn Scene2d?
- 28. Làm cách nào để tạo một bảng HTML có cùng chiều rộng với thẻ div chứa?
- 29. Làm cách nào để tôi giữ lại một NSString để vừa với chiều rộng cố định?
- 30. Làm cách nào để thêm đường viền 1px vào div có chiều rộng là phần trăm?
Cũng có thể sử dụng getMultiLineBounds (someString) .width cho nhiều dòng văn bản. –
cảm ơn bạn! vấn đề được giải quyết – LeSam
Phiên bản cũ của nó đã bị ngừng sử dụng trong phiên bản libgdx mới hơn. Tôi không thể tìm thấy nó trong API .... Là một cách khác để làm điều đó? –