Как рассчитать изменение разрешения экрана - PullRequest
0 голосов
/ 01 октября 2010

У меня есть приложение на мобильном устройстве.Я перевожу разрешения моего приложения с 240 Вт x 320 л до 640 Вт х 480 л.

У меня есть несколько столбцов, ширина которых в пикселях (например, 55).Мне нужно преобразовать это в новое разрешение.

«Легко», подумал я 640/240 = 2 2/3.Так что я просто беру 55 * 2.6666667, и это моя новая ширина.

Увы, это не сработало.Мои столбцы (все вместе) теперь больше размера моего экрана.

Я пробовал 55 * 2, и это слишком мало.Я уверен, что смогу получить пробную ошибку, но хочу узнать точное соотношение.

Итак, что я пропускаю?Как рассчитать ширину моего нового столбца (кроме проб и ошибок).

Ответы [ 3 ]

2 голосов
/ 01 октября 2010

DPI меняется при изменении разрешения. Таким образом, вы должны принять это во внимание.
Проверьте эту ссылку о приложениях DPI Aware и выполните поиск в соответствии с вашей платформой (Native или CF)

2 голосов
/ 02 октября 2010

Округление - ваша проблема;Предположим, что у вас есть 24 столбца по 10 пикселей на 240-пиксельном дисплее.Вы вычисляете новую ширину: 10 * 2.667 = 27, поэтому общая ширина составляет: 648> 640. Упс ...

Чтобы получить это право, вам нужно масштабировать абсолютное местоположение столбца.То есть, если номер столбца k начинается с координаты x = X, то после масштабирования он должен начинаться с раунда (X * 2.667).После этого вычтите округленную правую сторону X из округленной левой стороны X, чтобы получить ширину.Таким образом, вы округлите ширину вниз, а некоторые вверх, но общая ширина останется в ваших пределах.

2 голосов
/ 01 октября 2010

Я думаю, что ваша логика хороша, но, возможно, у вас были ошибки округления? Если вы хотите убедиться, что общая ширина меньше разрешения экрана, после умножения на коэффициент масштабирования вы всегда должны округлять до ближайшего целого числа, чтобы получить ширину в пикселях.

Кроме того, если между столбцами есть отступы, границы или другое пространство между ними, вам также необходимо это учесть.

Если вы можете работать в среде рабочего стола, я знаю, что существуют инструменты типа «пиксельная линейка» для измерения объектов на экране, вы можете искать их в Google.

...