sách gpt4 ai đã đi

Hỗ trợ JavaFX 8 HiDPI

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 20:40:33 57 4
mua khóa gpt4 Nike

Tôi vừa thử nó Ví dụ Hello World của JavaFXTrên màn hình 4k trong Arch Linux, nhưng thật không may là GUI không thể mở rộng.

tài liệugiải thích

Hỗ trợ Hi-DPI. JavaFX 8 hiện hỗ trợ màn hình Hi-DPI.



Vậy làm sao tôi có thể khiến ứng dụng của mình nhận biết được dpi?

1 Câu trả lời

Hỗ trợ Hi-DPI trên nhiều thiết bị khác nhau

Đối với máy Mac OS X có màn hình Retina, tính năng này "chỉ hoạt động" - JavaFX nhận biết được máy Mac Hi-DPI và sẽ điều chỉnh giao diện người dùng cho phù hợp. Nếu bạn đặt khoảng cách trong VBox là 8, thì đây là đơn vị độc lập với thiết bị; trên máy Mac không có màn hình Retina, khoảng cách này sẽ chiếm 8 pixel, còn trên màn hình Retina có độ phân giải gấp đôi, khoảng cách này sẽ chiếm 16 pixel. Vì màn hình Retina có DPI và độ phân giải gấp đôi màn hình không phải Retina nên kích thước màn hình vật lý của không gian này là như nhau bất kể thiết bị nào.

Đối với các thiết bị Windows và Linux, kết quả của bạn có thể không đạt yêu cầu vì JavaFX 8u20 hiện không tính toán độ phân giải DPI tùy ý trên các thiết bị đó và mặc định không điều chỉnh tỷ lệ phù hợp với chúng. Những gì bạn có thể làm là CSS như đơn vị em Hầu hết các phép đo được thực hiện trong (dựa trên kích thước điểm của phông chữ mặc định gốc cảnh) và tương tự cho fxml , sau đó đặt kích thước điểm của phông chữ mặc định gốc của cảnh một cách thích hợp, dựa trên những gì bạn xác định bằng cách truy vấn độ phân giải DPI của màn hình. Để biết thêm thông tin và mã mẫu, hãy xem phần thảo luận trong câu trả lời này:javafx tự động thay đổi kích thước và đệm nút .

Gnome dành riêng

Gnome 3 có một thiết lập cho hệ số tỷ lệLệnh này có thể được sử dụng để kiểm soát:

gsettings thiết lập org.gnome.desktop.interface hệ số mở rộng 2

Bạn có thể truy vấn hệ số tỷ lệ này bằng cách đọc cài đặt cấu hình gnome của người dùng và sử dụng thông tin đó kết hợp với truy vấn DPI của màn hình để tìm ra hệ số tỷ lệ phù hợp cho cách áp dụng tỷ lệ bằng kỹ thuật trên.

Chỉ là một giai thoại cá nhân - vài ngày trước khi tôi cố gắng sử dụng Gnome 3 để mở rộng trên màn hình Hi-DPI (CentOS 7 và các phiên bản Fedora gần đây), tôi phát hiện ra rằng hỗ trợ Hi-DPI nói chung cho các ứng dụng chạy trên Linux khá không đồng đều. Tất nhiên, hỗ trợ đã được cải thiện rất nhiều trong CentOS 6 khi tôi thử điều này, nhưng vẫn còn một chặng đường dài để đạt được hỗ trợ Hi-DPI chất lượng cao trên các bộ công cụ tạo cửa sổ, các ứng dụng tiêu chuẩn và các ứng dụng của bên thứ ba. Vì lý do này, tôi tin rằng chạy máy tính để bàn HiDPI Gnome vẫn là một công nghệ tiên tiến và chắc chắn không dành cho tất cả mọi người - tôi chắc chắn điều này sẽ thay đổi theo thời gian.

Hình ảnh bitmap

Từ trưởng nhóm JavaFX bài viết trên blog về Hi-DPI :

Trong các ứng dụng của Apple (bắt đầu với iPhone và iPad với màn hình retina), giải pháp cho vấn đề này là nhà phát triển ứng dụng cung cấp hai hình ảnh thay vì một cho mỗi tài sản hình ảnh. Ví dụ, màn hình chào mừng sẽ được cung cấp hai hình ảnh, một ở độ phân giải bình thường và một ở độ phân giải gấp 2 lần. Các tệp được đặt tên giống nhau nhưng tệp 2x được đặt tên theo một số quy ước, sao cho khi chạy, nền tảng sẽ tra cứu phiên bản 2x trên retina ở chế độ nền. Theo cách đó, ứng dụng của bạn sẽ nói "fooImage.png" nhưng "fooImage@2x.png" sẽ được tra cứu thay thế khi trên máy có màn hình retina.



Tôi không biết tính năng chọn hình ảnh bitmap này cho màn hình Hi-DPI hiện có trong Java 8u20 hay không - bạn có thể phải sử dụng màn hình.getDpi() Truy vấn màn hình để tự mình thực hiện. và sau đó tải bitmap thích hợp.

Thiết bị 4K

4K cần rất nhiều pixel. Theo mặc định, JavaFX sẽ sử dụng đường ống đồ họa được tăng tốc bằng phần cứng khi đường ống đồ họa đó khả dụng. Một số phần cứng đồ họa có thể không được tối ưu hóa hoàn toàn cho màn hình 4K (ví dụ: bộ nhớ video không đủ), điều này có thể khiến các ứng dụng không chạy hoặc hoạt động kém. Tôi cũng không tin rằng có nhiều nỗ lực được thực hiện để nghiên cứu hiệu suất JavaFX trên nhiều thiết bị 4K khác nhau - nó có thể "hoạt động", nhưng cũng có thể không. Bạn cần kiểm tra ứng dụng của mình trên phần cứng đích để xác định chức năng hiện tại của ứng dụng JavaFX khi chạy trên phần cứng đó. Bạn cũng có thể cần phải điều chỉnh ứng dụng của mình dựa trên một số gợi ý ở trên.

Người dùng đã báo cáo sự cố với JavaFX 8u20 khi cố gắng hiển thị video 4K bằng JavaFX:
  • Video JavaFX Ultra HD (4K)

  • lý lịch

    Việc hỗ trợ Hi-DPI trên OS X (có khả năng) đơn giản hơn so với các thiết bị Windows/Linux, vì thiết bị mục tiêu là màn hình Retina hoặc không phải Retina, một bên lớn hơn bên kia gấp chính xác 2 lần và có thể tận dụng hỗ trợ trực tiếp của OS X để hỗ trợ việc mở rộng Retina. Đối với Windows/Linux, điều có thể cần là khả năng mở rộng theo các yếu tố khác ngoài 2x, được đề cập trong các yêu cầu tính năng (hiện chưa hoàn thiện và đã lên kế hoạch) RT-32521 Hỗ trợ tỷ lệ tọa độ toàn cầu với mặc định dựa trên DPI ở giữa. Việc chia tỷ lệ theo số nguyên thường mang lại kết quả hiển thị tốt nhất.

    Tài nguyên bổ sung
  • Thảo luận của Kynosarges Tỷ lệ DPI của JavaFX .
  • Nhóm JavaFX đã viết một blog về JavaFX trên máy Mac retina (Điều này hiện đã lỗi thời vì JavaFX hiện hỗ trợ máy Mac Retina).
  • Randall JavaFX: Thiết kế cho nhiều độ phân giải ý kiến ​​của.
  • Quả táo tối ưu hóa các ứng dụng Có một số lời khuyên hữu ích dành cho các thiết bị có độ phân giải cao, không dành riêng cho JavaFX và một số lời khuyên không áp dụng cho JavaFX, nhưng vẫn có một số nguyên tắc và kỹ thuật chung hữu ích.

  • Hướng dẫn đầy đủ về mã hóa cho thiết bị Hi-DPI nằm ngoài phạm vi của câu trả lời cụ thể này - bạn có thể tìm kiếm trên Google nhiều tài nguyên web khác nhau để biết thêm thông tin.

    Nếu bạn có thêm câu hỏi về hỗ trợ Hi-DPI trong JavaFX, tôi khuyên bạn nên tham khảo danh sách gửi thư cho nhà phát triển JavaFX openjfx-dev Đặt một câu hỏi. .

    Câu trả lời Wiki

    Câu trả lời này có thể có một số điểm không nhất quán hoặc lỗi và có thể trở nên lỗi thời theo thời gian. Tôi đã tạo một wiki cộng đồng để giải đáp thắc mắc. Nếu bạn biết các sửa đổi cụ thể, giới hạn thiết bị và hệ điều hành hoặc hỗ trợ mô hình cho Hi-DPI trên JavaFX, hãy thoải mái chỉnh sửa câu trả lời này hoặc chuyển nó đến Wiki OpenJFX (Dù sao thì nó cũng thuộc về nơi này).

    Liên quan đến hỗ trợ JavaFX 8 HiDPI, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/26182460/

    57 4 0
    CNTT Lao Gao
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com