Cách tính chiều rộng String
bằng pixel trong Java? Ví dụ: tôi có chuỗi có nội dung "Hello World!". Chiều dài của nó tính bằng pixel, cũng xem xét gia đình và kích thước phông chữ của nó là bao nhiêu?Làm cách nào để tính chiều rộng của một chuỗi theo pixel?
Trả lời
Có một số cách để đạt được những gì bạn muốn, dựa trên những gì nó là bạn muốn đạt được, ví dụ ...
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics();
System.out.println(fm.stringWidth("This is a simple test"));
g2d.dispose();
Nhưng điều này chỉ có relevence cho BufferedImage
và nó Graphics
bối cảnh, nó sẽ không dịch lại để nói, một cái gì đó giống như một màn hình hoặc máy in.
Tuy nhiên, miễn là bạn có ngữ cảnh Graphics
, bạn có thể đạt được kết quả tương tự.
Ví dụ này, rõ ràng, sử dụng phông chữ mặc định cài đặt cho Graphics
bối cảnh mà bạn có thể thay đổi nếu bạn cần phải ...
Tôi chỉ có một' Chuỗi'. Tôi biết chiều dài của nó, họ phông chữ, cỡ chữ. Tôi muốn tính toán kích thước của nó theo pixel. – user2550754
Tốt, sau đó bạn có thể sử dụng một cái gì đó như ở trên. Chiều rộng và chiều cao phụ thuộc vào ngữ cảnh 'Graphics' mà bạn đang hiển thị. Mặc dù bạn có họ phông chữ, kích thước phông chữ và văn bản, bạn thiếu phần tử khóa – MadProgrammer
+1 nhưng TextLayout/SwingUtilities.computeStringWidth – mKorbel
Tóm lại: câu hỏi phụ thuộc vào khung bạn đang sử dụng. Ví dụ, nếu bạn đang sử dụng AWT, và có một đối tượng Graphics
graphics
, và một đối tượng Font
font
bạn có thể làm như sau:
FontMetrics metrics = graphics.getFontMetrics(font);
int width = metrics.stringWidth("Hello world!");
Check-out this để biết thêm thông tin.
Bạn có thể thử một cái gì đó như thế này
Graphics2D g2d = ...
Font font = ...
Rectangle2D r = font.getStringBounds("hello world!", g2d.getFontRenderContext());
System.out.println("(" + r.getWidth() + ", " + r.getHeight() + ")");
Tham khảo doc này, có thể giúp bạn.
Có vẻ như một chút đã được cân nhắc khi bạn có thể sử dụng 'Graphics # getFontMetrics', nhưng tôi sẽ cho bạn một cuộc bỏ phiếu cho sự khác biệt;) – MadProgrammer
có vài cách để làm điều đó, bạn có thể thử label.getElement().getClientWidth();
nếu văn bản là trong một lable, nếu bạn đang sử dụng AWT bạn có thể sử dụng Graphics.getFontMetrics
sau đó FontMetrics.stringWidth
Bạn có thể sử dụng FontMetrics. Lớp FontMetrics định nghĩa đối tượng chỉ số phông chữ, bao gồm thông tin về hiển thị phông chữ cụ thể trên màn hình cụ thể.
Bạn có thể làm một cái gì đó như dưới đây
Font font = new Font("Verdana", Font.PLAIN, 10);
FontMetrics metrics = new FontMetrics(font) {
};
Rectangle2D bounds = metrics.getStringBounds("Hello World!", null);
int widthInPixels = (int) bounds.getWidth();
Tôi có một cảm giác khá tốt rằng điều này sẽ không hoạt động. Kích thước pixel sẽ phụ thuộc vào ngữ cảnh 'Graphics', mà bạn đang chuyển' null' cho ... – MadProgrammer
Không chắc chắn làm thế nào để vượt qua xác minh kết quả nhưng khi tôi chạy nó tôi nhận được 67 là đầu ra cho chuỗi Hello World ! –
- 1. Đo chiều rộng pixel của một chuỗi
- 2. Cách tính chiều rộng pixel của một String trong JavaFX?
- 3. Độ dài của một chuỗi theo pixel
- 4. Làm thế nào để tìm chiều rộng chuỗi trong C# (tính bằng pixel)
- 5. Làm cách nào để đặt chiều rộng (tính bằng pixel) của thanh trượt đầu vào?
- 6. Cách tìm chiều rộng của chuỗi (tính bằng pixel) trong WIN32
- 7. Làm cách nào để có chiều rộng chuỗi trong Libgdx?
- 8. 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?
- 9. Qt - Lấy chiều dài pixel của một chuỗi trong QLabel
- 10. SDK iPhone: Làm cách nào để đo chiều rộng và chiều cao của chuỗi bằng Quartz?
- 11. Cách tính chiều rộng của phông chữ?
- 12. Làm cách nào để tính chiều rộng của chuỗi văn bản của một phông chữ và cỡ chữ cụ thể?
- 13. Cách tính chiều rộng của thanh cuộn?
- 14. Làm cách nào để nhận được chiều cao của đối tượng GWT tính bằng pixel?
- 15. Làm cách nào để tính chiều rộng titleView tối ưu?
- 16. Cách đặt PdfPTable tính theo chiều rộng cột động
- 17. Cắt bớt một chuỗi độc đáo để vừa với chiều rộng pixel nhất định
- 18. C# tính chiều cao của một chuỗi với chiều rộng đã cho
- 19. 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ó?
- 20. Làm thế nào để giảm chiều rộng của một phần tử bằng một pixel khi nó được xác định theo phần trăm
- 21. Làm cách nào để vẽ một chuỗi được căn giữa theo chiều dọc trong Java?
- 22. Làm cách nào để tạo một ListBoxItem theo chiều dọc
- 23. Cách lấy chiều rộng chuỗi
- 24. Làm cách nào để đặt chiều rộng của dijit.form.Select?
- 25. Làm thế nào để loại bỏ thuộc tính chiều rộng mà là theo thuộc tính phong cách sử dụng jQuery?
- 26. Tại sao chiều rộng Javascript của một ô trong một pixel quá ngắn?
- 27. Làm thế nào để làm cho con vượt quá chiều rộng của phụ huynh đúng cách?
- 28. Làm thế nào để tính toán chiều rộng chuỗi trong iText?
- 29. 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?
- 30. Làm cách nào tôi có thể nhân giá trị chiều rộng pixel với LESS Css?
Vâng, bạn có một phông chữ đặc biệt và kích thước phông chữ trong tâm trí? – Matthias
Có thể tùy ý bất cứ ai. – user2550754
Đã chỉnh sửa định dạng của bạn để xóa đánh dấu mã cho độ dài cụ thể. –