在介紹獨角獸操作系統(tǒng)的高分辨率屏幕解決方案之前,需要理解一些概念。
分辨率:表示指定距離(或面積)內(nèi)的“點”或“像素”數(shù)。
有時被稱為"解析度"。常用的描述分辨率的單位有:DPI(點每英寸)和 PPI(像素每英寸)。DPI圖片
- PPI (Pixels Per Inch):通常用于描述數(shù)字圖像的分辨率,表示屏幕可以顯示的固定像素數(shù)和數(shù)字圖像中像素的密度;PPI 計算公式 =√(x^2+y^2)/z,x為長度像素數(shù),y為寬度像素數(shù),z為屏幕尺寸;由于歷史原因我們現(xiàn)在平時所說的軟件像素應(yīng)該是 PPI,中文意思是每英寸像素數(shù),在系統(tǒng)中修改的 DPI 其實就是這個 PPI。
對于電腦而言,PPI 有三個層次:
1)顯示器 PPI,這是硬件,其 PPI 是出廠固定的,不可以更改的;
2)操作系統(tǒng) PPI,操作系統(tǒng)可以將顯示器設(shè)置成自己的分辨率,作為用戶,對我們視覺有影響的是這個分辨率;
PPI圖片
接下來開始進(jìn)入主題。隨著顯示器質(zhì)量的提高,高分屏逐漸增多,很多用戶平時使用的機(jī)器都是2k屏甚至是4k屏,顯示器分辨率變大后,同樣的物理尺寸下可以表示更多的點。
優(yōu)麒麟高分屏下自研應(yīng)用的顯示效果
優(yōu)麒麟高分屏下第三方應(yīng)用的顯示效果
優(yōu)麒麟系統(tǒng)上分別對于 Qt 與 GTK 這兩平臺上所寫應(yīng)用進(jìn)行了適配工作。
Qt 平臺
Qt 提供了以下方式來在應(yīng)用程序中處理高DPI的支持:
- QT_AUTO_SCREEN_SCALE_FACTOR 根據(jù)顯示器的像素密度啟用自動縮放。這不會更改磅號字體的大小,多個屏幕可能會獲得不同的比例因子。
- QT_SCALE_FACTOR 定義整個應(yīng)用程序的全局比例因子,包括字體的大小。
- QT_SCREEN_SCALE_FACTORS 指定每個屏幕的比例因子,這不會更改字體的大小。
- 從 Qt 5.6 開始引入了 Qt::AA_EnableHighDpiScaling 屬性,使得應(yīng)用程序自動檢測顯示器的像素密度來實現(xiàn)自動縮放;而 Qt::AA_DisableHighDpiScaling 屬性用于關(guān)閉應(yīng)用程序的縮放,不管上述三個變量的值為如何。
- 從 Qt 5.14 引入了環(huán)境變量 QT_ENABLE_HIGHDPI_SCALING 替換舊有的 QT_AUTO_SCREEN_SCALE_FACTOR,可以用來檢測顯示器的像素密度來實現(xiàn)自動縮放 。
一個關(guān)于高DPI術(shù)語表:
術(shù)語 | 定義 |
Device Independent Pixels | 應(yīng)用程序使用像素,取決于操作系統(tǒng)獲取Qt的縮放比例 |
Device Pixels | 顯示器的像素 |
Device Pixel Ratio | 適用于操作系統(tǒng)或者Qt的比例系數(shù) |
Logical DPI | 將字體大小轉(zhuǎn)換為以像素為單位的字體大小的分辨率,標(biāo)準(zhǔn)值為96,128,192...?? |
Physical DPI | 即顯示器的物理分辨率 |
GTK 平臺
對于 GTK 的程序,有以下兩種環(huán)境變量用于生效:
- GDK_SCALE:以整數(shù)倍來縮放UI元素。
- GDK_DPI_SCALE:用于補(bǔ)償通過GDK_SCALE進(jìn)行縮放后應(yīng)用程序的字體分辨率。
Xresources
最后還需要介紹一些關(guān)于 Xresources 的知識,在 ~/.Xresources 文件中設(shè)置 x 幾乎可以縮放所有 Xorg 應(yīng)用程序的字體,例如:x: 192,這將會把字體放大兩倍,系統(tǒng)中默認(rèn) dpi 為 96。
介紹以上三種縮放方式,每一種方式都有自己的作用(縮放UI或文本),因此我們需要將他們適當(dāng)?shù)慕Y(jié)合起來,整理成如下的一個表格:
應(yīng)用程序 | Xresources | GTK環(huán)境變量 | QT環(huán)境變量 |
Firefox&&Chrome | UI&&文本 | UI&&文本 | |
GTK Apps | 文本 | UI&&文本 | |
常規(guī) Xorg Apps | 文本 | ||
QT Apps | 文本 | UI&&文本 |
在優(yōu)麒麟系統(tǒng)中結(jié)合以上三種方式的特點,將縮放接口統(tǒng)一整合到了 ukui-settings-daemon 之中,從而實現(xiàn)在高分屏下的縮放效果,縮放接口為:
gsettings set org.ukui.Se scaling-factor 縮放倍數(shù)
以上就是對優(yōu)麒麟高清屏支持縮放技術(shù)的介紹,后續(xù)將為大家?guī)砀鄡?yōu)麒麟操作系統(tǒng)的開發(fā)經(jīng)驗分享。
1.《電腦打印機(jī)怎么設(shè)置dpi?我來告訴你答案經(jīng)驗分享 | 優(yōu)麒麟操作系統(tǒng)高分屏解決方案》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《電腦打印機(jī)怎么設(shè)置dpi?我來告訴你答案經(jīng)驗分享 | 優(yōu)麒麟操作系統(tǒng)高分屏解決方案》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/why/3208604.html