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

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

29.01.2014, 22:01. Просмотров 1340. Ответов 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 и я не понимаю, куда исчезает эта единица.
http://www.cyberforum.ru/android-dev/thread1611010.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 22:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Физический размер экрана (Программирование Android):

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

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

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

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

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

2
MegaSinner
96 / 92 / 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
Привет! Вот еще темы с решениями:

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

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

Размер кнопок, не пойму что влияет на их размер
Нужно специфичное расположение кнопок, добиваюсь этого вложением множества...

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


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

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

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