Как разместить для разрешения экрана iPhone 4?

По данным Apple, iPhone 4 имеет новое и лучшее разрешение экрана:

3,5-дюймовый (диагональный) широкоэкранный Мультисенсорный дисплей
Разрешение 960 на 640 пикселей на уровне 326 пкс/дюйм

Эта небольшая деталь влияет на наши приложения тяжелым способом. Большинство демонстрационных приложений в сети имеет одну общую черту: Они располагают представления в то, чтобы полагать, что экран имеет фиксированный размер 320 x 480 пикселей. Таким образом, то, что большинство (если не все) разработчики делает: они разработали все таким способом, что осязаемая область - (например), большой 50 x 50 пикселей. Как раз касаться его. Вещи были расположены относительно верхнего левого угла, для достижения определенной позиции по экрану - скажем, центр, или где-нибудь внизу.

Когда мы разработаем приложения с высоким разрешением, они, вероятно, не будут работать над более старыми устройствами. И если бы они делают, они перенесли бы много от 4 времен размер любого изображения, имея необходимость уменьшить масштаб их в памяти.

27
задан 11 revs, 5 users 69% 12 December 2015 в 14:39
поделиться

8 ответов

Согласно Поддержка экранов с высоким разрешением в представлениях , из документации Apple:

На устройствах с экранами высокого разрешения imageNamed: , imageWithContentsOfFile: и initWithContentsOfFile: методы автоматически ищет версию запрошенное изображение с @ 2x модификатор в его имени. Если найдет, вместо этого он загружает это изображение. Если вы это сделаете не предоставлять версию с высоким разрешением данного изображения, объект изображения по-прежнему загружает стандартное разрешение изображение (если оно существует) и масштабирует его во время рисования.

Когда он загружает изображение, объект UIImage автоматически устанавливает размер и масштабировать свойства до соответствующих значений на основе суффикса файла изображения. Для изображений со стандартным разрешением устанавливает свойство масштаба на 1.0 и устанавливает размер изображения равным размеры изображения в пикселях. Для изображений с суффиксом @ 2x в имени файла, он устанавливает свойство масштаба на 2,0 и уменьшает вдвое значения ширины и высоты до компенсировать масштабный коэффициент. Эти половинные значения правильно коррелируют с размеры, основанные на точках, которые вам нужно использовать в логическом координатном пространстве для визуализировать изображение.

15
ответ дан 28 November 2019 в 05:26
поделиться

Да, это правда.

Согласно WWDC, похоже, что Apple построила некоторую форму автоматического преобразования, чтобы разрешение для приложений не было полностью отключено. Подумайте о преобразовании DVD в HDTV.

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

2
ответ дан 28 November 2019 в 05:26
поделиться

Это чисто предположение, но если разрешение действительно 960 x 640 - это ровно в два раза больше разрешения, чем у текущей версии. Для iPhone было бы тривиально просто проверить цель сборки приложения, определить устаревшую версию приложения и просто масштабировать ее на 2. Вы никогда не заметите разницы.

6
ответ дан 28 November 2019 в 05:26
поделиться

Репортаж Engadget о ключевом выступлении включал следующую расшифровку речи Стива Джобса

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

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

5
ответ дан 28 November 2019 в 05:26
поделиться

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

4
ответ дан 28 November 2019 в 05:26
поделиться

Масштабирование в двойное разрешение для отображения - это просто, но будет ли это масштабирование применяться ко всем api, которые вводят/выводят координаты экрана? Если нет, то все будет ломаться, не так ли?

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

3
ответ дан 28 November 2019 в 05:26
поделиться

Для тех, кто пришел в эту тему в поисках решения для мобильного веб-интерфейса, обратите внимание на это сообщение в блоге Webkit: http://webkit.org/blog/55/high-dpi-web-sites/

Похоже, что Webkit решил эту проблему еще четыре года назад.

3
ответ дан 28 November 2019 в 05:26
поделиться

Все ваши метки и системные кнопки будут иметь разрешение 326dpi, но ваши изображения по-прежнему будут удваиваться в пикселях, пока вы не добавите ресурсы высокого разрешения. В настоящее время я обновляю свои приложения. Если вы собираете и запускаете iPhone 4 sim, тогда он отображается на 50%, перейдите в Window> Scale> 100%, чтобы увидеть реальную разницу! Этикетки гладкие, мои изображения выглядят шокирующе!

2
ответ дан 28 November 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: