我發現一個Swing圖像渲染錯誤,它只能折磨帶Retina顯示器的Mac(TYPE_INT_ARGB_PRE
BufferedImages
未能繪製)。我有一個有效的解決方法(代替使用TYPE_INT_ARGB
圖像),但爲了應用它,我需要能夠檢測主機是否是具有Retina顯示器的Mac。檢測機器是否是Mac是沒有問題的,但我怎樣才能確定顯示器類型?如何檢測Mac是否有來自Java的Retina顯示屏?
7
A
回答
15
Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")
上面行應視網膜上顯示返回2.0
。在最近的非視網膜蘋果機上,它會返回1.0
,並在所有其他平臺上返回null
。我找不到任何官方文檔,但我試圖解決類似問題時遇到了in this mailing list post。
1
我發現this溶液,其使用:
Graphics2D g = (Graphics2D) this.getGraphics();
boolean retinaTest = g.getFontRenderContext().getTransform()
.equals (AffineTransform.getScaleInstance (2.0, 2.0));
相關問題
- 1. 以編程方式檢測iPad是否具有Retina顯示屏?
- 2. 景觀Retina顯示屏與非Retina顯示屏
- 3. 禁用Retina顯示屏?
- 4. Retina顯示屏從URL
- 5. JQM - 如何檢測項目是否顯示在屏幕上
- 6. Java Servlets - 如何檢測用戶是否來自移動設備?
- 7. 檢測是否顯示UICollectionViewCell
- 8. 如何檢查顯示器是否是Mac OSX上的內置顯示器?
- 9. 帶SDL2的iOS Retina顯示屏
- 10. Swing和位圖上的Retina顯示屏
- 11. 如何檢測屏幕是否連接?
- 12. 如何使用JavaScript來檢測用戶是否有多個顯示器?
- 13. 如何檢測iPhone是否有視網膜顯示?
- 14. 如何檢測瀏覽器是否有輕按突出顯示?
- 15. 檢測是否顯示工具提示?
- 16. 檢查屏幕上是否顯示Vector3
- 17. jQueryMobile不應用Retina顯示屏
- 18. CSS3關鍵幀動畫Retina顯示屏
- 19. 字體和線條Retina顯示屏上
- 20. 在Retina顯示屏上繪圖?
- 21. 有沒有辦法檢測iAd是否顯示「測試廣告」?
- 22. 檢測屏幕鍵盤是否顯示在Windows Phone 7上
- 23. 檢測是否在HiDPI顯示屏上運行
- 24. 如何在帶有Retina顯示器的Mac OS上的OpenGL中繪製文本
- 25. 用Core Graphics繪圖在Retina顯示屏上看起來矮胖
- 26. 檢測請求是否來自移動
- 27. 檢測FaultException是否來自遠程源
- 28. 如何檢測元素是否不顯示在屏幕上進行滾動?
- 29. 如何檢查主屏幕是否顯示在iPhone上?
- 30. 如何檢查當前是否顯示啓動器/主屏幕
這不是一個很好的方法,因爲用戶可能具有多個監視器,其中之一是視網膜和一個其不是。每次重新繪製時,您都需要爲單個窗口查詢此狀態。 –
這將在我2013年晚些時候的rMBP上返回null。有沒有特定的地方應該使用? – dmolony