Retinaディスプレイを搭載したMacのみに影響を与えるSwing画像レンダリングのバグを発見しました(TYPE_INT_ARGB_PRE
BufferedImages
描画に失敗します)。効果的な回避策があります(TYPE_INT_ARGB
代わりに画像を使用します)が、それを適用するには、ホストマシンがRetinaディスプレイを搭載したMacであるかどうかを検出できる必要があります。マシンがMacであるかどうかを検出することは問題ありませんが、表示タイプを判別するにはどうすればよいですか?
質問する
1413 次
2 に答える
15
Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")
上記の行は2.0
、Retinaディスプレイに戻るはずです。最近の非網膜マックではそれが戻り1.0
、他のすべてのプラットフォームでは戻ってきnull
ます。公式のドキュメントは見つかりませんが、同様の問題を解決しようとしているときに、このメーリングリストの投稿でそれを見つけました。
于 2013-02-05T21:17:09.177 に答える
1
以下を使用するこのソリューションを見つけました。
Graphics2D g = (Graphics2D) this.getGraphics ();
boolean retinaTest = g.getFontRenderContext ().getTransform ()
.equals (AffineTransform.getScaleInstance (2.0, 2.0));
于 2016-07-30T03:12:56.333 に答える