Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
#1

Физический размер экрана - Программирование Android

29.01.2014, 22:01. Просмотров 1122. Ответов 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 и я не понимаю, куда исчезает эта единица.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 22:01     Физический размер экрана
Посмотрите здесь:

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

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

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

Как автоматически изменять размер текста в spinner в зависимости от размера экрана? - Программирование Android
Здравствуйте. В программе использую две темы светлую и темную: <style name="BlackTheme" parent="android:style/Theme.Holo"> <item...

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

Размер кнопок, не пойму что влияет на их размер - Программирование Android
Нужно специфичное расположение кнопок, добиваюсь этого вложением множества вертикальных и горизонтальных Layout-ов. В главный (Hor)...

Размер шрифта, размер контролов - Программирование Android
Почему когда делаю TextView.setTextSize(14); на одном устройстве показывает нормально, а на другом показывает в 2 или 3 раза больше?? ...

Блокировка экрана - Программирование Android
Здравствуйте. Для пробуждения и разблокировки устройства я использую метод : @Override public void onAttachedToWindow() {...

ориентация экрана - Программирование Android
Как сделать так чтобы в тоже время запретить вертикальную ориентацию активити. Но в горизонтальном положении его можно было поворачивать...

Размеры экрана - Программирование Android
Захотел сделать подгон кнопок под разрешение экрана. Погуглил на эту тему, сделал новый класс. Вот что получилось. Ошибка в ...

Обновление экрана - Программирование Android
В стандартных функциях есть возможность посмотреть, как обновляется экран. Было бы классно это использовать в коде (нужно выполнять...

Включение экрана - Программирование Android
AlarmManager инициирует вызов активити, но если экран не включен( стоит на блоке) то ничего не видно. как включить экран?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 01:51     Физический размер экрана #2
kebal, metrics.getDpi(), а затем высчитать... У меня вроде правильно показывало..
kebal
9 / 9 / 0
Регистрация: 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мм, что точнее... но что за единица без понятия.
Ответ Создать тему
Опции темы

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