SWT(或JFace)是否有一個公共便利的方法將常規單位轉換爲其縮放對象?我發現提到DPIUtil
類,但這是內部命名空間的一部分您如何利用SWT的Hi-DPI支持小部件尺寸?
如果沒有可用的便利方法,那麼是否有可靠的方法來訪問縮放級別?我看到有Device#getDeviceZoom()但這是受保護的。有Device#getDPI()這是公開的,所以它可能是有用的。這是否需要考慮擴大規模,還是天真的,只是宣佈DPI爲96?
我將默認大小提示應用於某些面板,我希望他們考慮監視器縮放設置。例如,在常規顯示屏上說我想要默認爲300像素,但在150%縮放比例下,我想將其計算爲450像素。計算顯然很簡單,但我需要乘數。
注意:這與我之前的問題How do you utilize SWT's Hi-DPI support for icons?有關,但不同,因爲SWT提供了專門用於處理圖像的類。
你通常不需要。指定300px的大小將被150縮放設備上的SWT自動縮放爲450px(並且將使用您提供的任何150縮放圖像)。我有一個iMac將兩個屏幕 - 一個5k屏幕縮放在200和一個2,5k屏幕不縮放 - SWT應用程序在兩個上顯示相同的大小。 –
@ greg-449我沒有意識到它會自動轉換。 SWT文檔是否在某處存在,或者它是大多數實現遵守的那些未記錄的功能之一?我一直沒能找到有關使用SWT進行DPI縮放的全面信息。 – cpburnz
它不是真的SWT,它是OS(至少它是如何在macOS上工作的)。操作系統放大尺寸,以更高的分辨率呈現字體,並使用高分辨率圖像(如果可用)。因此,除了提供高分辨率圖像之外,程序不需要做任何事情。 –