2017-02-01 9 views
2

Pour pouvoir dégager de la valeur dpi, j'utilise ceci:Comment obtenir DPI correct de l'affichage avec Java, lorsque l'utilisateur change la résolution de l'écran sur les paramètres de Windows?

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

à l'avance les paramètres d'affichage, Lorsque j'ai appliqué 1366 x 768 en tant que valeur de résolution;

valeur dpi retourne 96 (C'est ce que je pensais)

Cependant, Quand j'ai changé 800 x 600 en tant que valeur de résolution dans les paramètres;

valeur dpi retourne 96 (Cela devrait être une valeur inférieure à 96)

Lorsque je tente même cas ordinateur mac, les bonnes valeurs sont à venir.

Je pense qu'il y a quelque chose qui ne va pas dans la valeur de résolution qui vient de Windows OS. J'ai testé pour Windows 7 et Windows 10.

Modifier: Pour comprendre pourquoi j'ai besoin de cette valeur, cochez cette question et son answer.

+0

Que vous besoin de la résolution et dpi pour? Cela ressemble beaucoup à un [problème XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) pour moi. –

+0

Mon application Java met tout à l'échelle de la résolution (DPI) de l'écran. Cela inclut des icônes, des bordures, des encarts, des graphiques personnalisés et des polices. – ziLk

+0

Et votre API graphique ne gère pas cela pour vous? –

Répondre

0

Je pense que la réponse est official documentation:

Indique quelle taille pour afficher le texte et d'autres éléments à l'écran. Windows La valeur PPP est un nombre entier compris entre 96 et 480. Les valeurs prises en charge incluent 96, 120 et 144. Par défaut, Windows utilise la configuration automatique DPI .

C'est pourquoi il retourne 96 pour 800 x 600.