1.官方Feature
263:?HiDPI Graphics on
Windows and Linux
2.產(chǎn)生背景
在Mac上,JDK已經(jīng)支持視網(wǎng)膜顯示麦向,但在Linux和Windows上筷频,它并沒有园细。在那里镣煮,Java程序在當(dāng)前的高分辨率屏幕上可能看起來很小埃跷,不能使用它們金度。這是因?yàn)橄袼赜糜谶@些系統(tǒng)的大小計(jì)算(無論像素實(shí)際有多大)本讥。畢竟珊泳,高分辨率顯示器的有效部分是像素非常小。
JEP 263以這樣的方式擴(kuò)展了JDK拷沸,即Windows和Linux也考慮到像素的大小色查。為此,使用比現(xiàn)在更多的現(xiàn)代API:Direct2D for
Windows和GTK +撞芍,而不是Xlib for Linux秧了。圖形,窗口和文本由此自動(dòng)縮放勤庐。
JEP 251還提供處理多分辨率圖像的能力示惊,即包含不同分辨率的相同圖像的文件好港。根據(jù)相應(yīng)屏幕的DPI度量,然后以適當(dāng)?shù)姆直媛适褂脠D像米罚。
3.使用說明
新的API定義在java.awt.image包下
將不同分辨率的圖像封裝到一張(多分辨率的)圖像中钧汹,作為它的變體
獲取這個(gè)圖像的所有變體
獲取特定分辨率的圖像變體-表示一張已知分辨率單位為DPI的特定尺寸大小的邏輯圖像,并且這張圖像是最佳的變體录择。
基于當(dāng)前屏幕分辨率大小和運(yùn)用的圖像轉(zhuǎn)換算法拔莱,java.awt.Graphics類可以從接口MultiResolutionImage獲取所需的變體。
MultiResolutionImage的基礎(chǔ)實(shí)現(xiàn)是java.awt.image.BaseMultiResolutionImage隘竭。