Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
kebal
9 / 9 / 2
Регистрация: 02.11.2012
Сообщений: 153
1

Физический размер экрана

29.01.2014, 22:01. Просмотров 1381. Ответов 2
Метки нет (Все метки)

Пишу на OpenGL ES
Java
1
2
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Затем получаю количество пикселей на дюйм по x и по y. Для Asus Nexus 7 это выходит 195 по x и 200 по y, что означает - 195 пикселей на дюйм в ширину и 200 пикселей на дюйм в высоту.
Затем я получаю просто ширину и высоту в пикселях. Что дает мне 800 и 1205 и делю.
800 / 195 * 2.54
1205 / 200 * 2.54
2.54 сантиметра = 1 дюйм
То есть программа мне говорит, что размер моего игрового поля 10.4 на 15.2 сантиметра, а линейкой я замерил получается, что 9.4 на 14.2 и я не понимаю, куда исчезает эта единица.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 22:01
Ответы с готовыми решениями:

Как подгонять размер диалоговых окон по размер экрана?
Здравствуйте! Как подгонять размер диалоговых окон по размер экрана? У меня...

Размер экрана
Нашел приложение. Когда запускаю его на Bluestacks размер Bluestacks...

Размер экрана без шапки
Создаю диалог вручную. Нужно знать точный размер экрана без учета панели с...

Узнать доступные координаты (размер экрана)
Всем привет. Мне нужно в программе сделать случайное перемещение ImageButton,...

Максимальный размер картинок для экрана
Всем привет! Задал картинку с drawable в background LinerLayout. В некторых...

2
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 01:51 2
kebal, metrics.getDpi(), а затем высчитать... У меня вроде правильно показывало..
0
kebal
9 / 9 / 2
Регистрация: 02.11.2012
Сообщений: 153
30.01.2014, 03:26  [ТС] 3
Да, ещё до этого тестировал, там есть public поле metrics.densityDpi и оно на моем устройстве имеет значение 213 для обоих направлений, что вроде бы по формулам даёт приемлемый результат.
Хотя вот описание
public float densityDPi: The screen density expressed as dots-per-inch.
public float xdpi: The exact physical pixels per inch of the screen in the X dimension.
public float ydpi: The exact physical pixels per inch of the screen in the Y dimension.
Что как бы намекает, что в ширину и высоту плотность разная, что собственно я и раньше предполагал или читал в других источниках. При этом что в интернете находил - используют xdpi и ydpi.
И если использую densityDPI, то подсчет размера экранах в сантиметрах отличается на 1-2мм, а если использовать xdpi, ydpi, то если отнять от результата в сантиметрах единицу, то отличаться будет всего на 0.5-1мм, что точнее... но что за единица без понятия.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 03:26

RecyclerView создает Item на размер экрана, как исправить?
Аномалии, сменил версию RecyclerView с 21.0.+ на 23.3.0. Теперь он создает 1...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Здравствуйте. В программе использую две темы светлую и темную: <style...

Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана?
В Android Studio мы же под определенную диагональ создаём приложение (один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru