Можем ли мы просто предоставить изображения @2x? - программирование
Подтвердить что ты не робот

Можем ли мы просто предоставить изображения @2x?

Мы знаем, что мы должны предоставить изображение нормального размера и изображение размера 2x2 для приложения iphone/ipad. Но предоставление двойного размера для одного изображения - скучная вещь.

Я проведу тест, если есть только изображение @2x, при необходимости система автоматически уменьшит изображение @2x до нормального размера. Поэтому в этой ситуации ни одна сетчатка iphone/ipad не будет выглядеть странно.

Мне интересно, можем ли мы просто предоставить изображения @2x и позволить системе сжимать их, чтобы получить меньшие? И это разрешено яблоком?

Спасибо.

Edit:

Я понял, что это вызовет проблему памяти на старом устройстве.

Еще раз спасибо.

4b9b3361

Ответ 1

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

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

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

Ответ 2

Я не думаю, что Apple отклонит ваше приложение. Но это не очень хорошая идея.

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

Вы можете легко изменить размер изображений @2x на половину размера с помощью простого автомата script. Нет необходимости делать это вручную, если вы действительно не хотите.

Ответ 3

+1 для интересного вопроса.

Но: если вы рассматриваете это, чтобы уменьшить размер вашего приложения, означает, что у вас много изображений в приложении. В таком случае: не делай этого, так как ты собираешься наложить дополнительную нагрузку на более старые устройства (протестированы).

Для приложений с меньшей графикой это будет нормально, но там нет смысла.

Так что это действительно плохая идея с любой точки зрения.

И так как вы уже собираетесь создавать все изображения @2x: вы может просто использовать Unretiner, чтобы преобразовать все эти изображения в "нормальные" размер, и вам хорошо идти.

Ответ 4

Если для вас важна проблема с приложением, то этот маршрут - это тот, который вы можете взять, это будет стоить как процессора, так и объема памяти, увеличиваясь (примерно на 4 раза) на старых устройствах. Однако, если вы загружаете свой собственный UIImages (подклассификация UIImage), чтобы он загружался на более старые устройства, чтобы масштабировать необработанное изображение, прежде чем возвращать конечный результат, тогда только процессор будет получать удар.

Ответ 5

Если вы создаете приложение для iPhone, ориентированное только на iOS 7.0 и выше, нет никаких оснований предоставлять изображения без сетчатки с единственных моделей iPhone/iPod, которые могут работать под управлением iOS 7 или выше (iPhone 4 или 5-го поколения iPod Touch и выше) имеют дисплей сетчатки.

Есть две модели для iPad без экрана сетчатки, которые могут запускать iOS 7.0, iPad 2 и оригинальный iPad Mini. Обратите внимание, что iPad 2 прекратил производство в начале 2014 года. Если вы создаете приложение iPad или универсальное приложение, ориентированное на iOS 7 и выше, это только два устройства без сетчатки, которые могут запускать ваше приложение.

Ответ 6

Да, потому что iphone нужно загрузить изображение @2x перед сжатием, которое будет использовать в 4 раза больше памяти. Поэтому это не рекомендуется.

Ответ 8

мы просто предоставляем изображения @2x в нашем приложении, и Apple не отклоняет приложение.