как получить размер диагональ экрана в сантиметрах?

я здесь нашел пример как получить диагональ экрана. и он не правильно считает. даже если я перевел в сантиметры.

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
double screenInches = Math.sqrt(x + y);
screenInches *= 2.54;

у меня планшет, а он показывает диагональ как будто экран в диагонали около 12 сантиметров. а экран у меня вроде больше 20 сантиметров. как правильно считать? я попробовал поделить на другое значение.

double x = Math.pow(dm.widthPixels / dm.densityDpi, 2);
double y = Math.pow(dm.heightPixels / dm.densityDpi, 2);

значение уже блин, получается 21 сантиметр, но у меня экран где-то 26 сантиметров.


Ответы (1 шт):

Автор решения: Виталий Перятин

Cуть этого кода заключается в нахождении ширины экрана, потом нахождении высоты экрана, а потом получения диагонали через стандартную формулу Пифагора. У Вас неверно написана формула Пифагора

Эта строка:

double screenInches = Math.sqrt(x + y); 

должна выглядеть так:

double screenInches = Math.sqrt(x * x + y * y);
→ Ссылка