2017-02-01 13 views
2

ができるゲットDPI値であるために、私はこれを使用しています:事前表示設定においてWindowsの設定で画面解像度を変更すると、Javaでディスプレイの正しいDPIを取得する方法は?

float dpi = Toolkit.getDefaultToolkit().getScreenResolution(); 

、I解像度値として1366×768を適用した場合、

dpi値Iが設定における解像度値として800×600を変更した場合、しかし

(つまり、私が期待したものである)96を返します。

dpi値IがMACコンピュータで同じ場合を試みるとき96

(すなわち96よりも低い値でなければならない)を返し、右の値が来ています。

Windows OSから来る解像度値に何か問題があると思います。私はWindows 7Windows 10をテストしました。

編集:この値が必要な理由を理解するには、この質問とそのanswerを確認してください。

+0

ため96を返しThatsなぜ?これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようなものです。 –

+0

私のJavaアプリケーションは、すべてを画面の解像度(DPI)に合わせて拡大/縮小します。これには、アイコン、枠線、インセット、カスタムグラフィックス、フォントが含まれます。 – ziLk

+0

あなたのグラフィックスAPIはあなたのためにそれを処理しませんか? –

答えて

0

私は答えがofficial documentationであると思う:

は、画面上のテキストやその他の項目を表示するにはどのようなサイズを指定します。 Windows DPIの値は、96〜480の整数です。サポートされる値 には、96,120、および144が含まれます。デフォルトでは、Windowsは自動DPI 構成を使用します。

それはあなたのための解像度とDPIが必要なのか何800×600

関連する問題