Зачем мне нужны изображения @1x, @2x и @ 3x iOS?
зачем нам нужны эти 3 конкретных типов изображения?
Если у меня есть кнопка на моем приложении с фоновым изображением, скажем, 50 пикселей х 50 пикселей, зачем мне нужны 3 версии этого изображения? Что мешает мне просто сделать одно изображение, которое намного выше в res, скажем, 700x700, поэтому, когда оно сжимается на любом iPhone, оно не попадет под максимальное разрешение, которое захочет устройство?
единственное, что я могу думать, это просто занимает больше места, но для простых приложений / простая кнопка кажется как будто это не вызовет никаких проблем. Я пробовал его на нескольких устройствах и не вижу никакой разницы между ними, когда я имитирую его и делаю этот метод. Однако, поскольку я больше погружаюсь в приложения и прочее, я уверен, что за этой техникой есть вещество.
6 ответов:
если у вас нет точных размеров, есть две вещи, которые могут произойти:
масштабирование
@3xили@2xможет быть увеличен с@1xно обычно визуальный результат размыт, с толстыми линиями и не выглядит хорошо. Масштабирование@3xс@2xможет быть еще хуже, потому что должны использоваться субпиксели.масштабирование
в целом, результаты намного лучше, чем при масштабировании, однако это не относится ко всем изображениям. Если у вас есть
1pxграницы с@3xизображение, после масштабирования его до@1xграница не будет видна (0.33 px). То же самое относится и к любым мелким объектам на изображении. Уменьшение масштаба разрушает все детали.в общем - для изображения, чтобы выглядеть безупречно, вы хотите, чтобы избежать как разукрупнение и укрупнение. Вы всегда можете пойти только с
@2xили@3xизображения и добавить другие масштабы, только если вы видите визуальные проблемы. Использование выше разрешение не улучшит масштабирование. Высокие разрешения используются только для того, чтобы избежать масштабирования. Уменьшение масштаба с высокой шкалы (например,@100x) к@1xне будет создавать лучшие результаты, чем масштабирование от@3x.
вам нужно 3 вида изображений в ресурсах изображений, потому что с точки зрения масштабирования или пикселей Есть 3 вида устройств Apple (iPhone и iPad), которые
нормальный прибор который термины к
1 pixel = 1 point@1x (старые устройства iPhone и iPad)сетчатка устройство, которое термины
4 pixels(2 x 2) = 1 point@2x (iPhone 4+)сетчатка iPhone6 и iPad, которые термины
9 pixels (3 x 3) = 1 point@3x (iPhone6+)таким образом, для предоставления одного и того же изображения в 3 масштабах iOS решает, какое изображение показывать для которого устройства.Надежда может помочь вам понять это.
EDIT
Это потому, что если вы предоставите один график с высоким разрешением, это будет пустая трата места на устройстве пользователя. Благодаря App slicing устройство будет загружать (из App Store) только те части, которые действительно подходят для устройства (поэтому устройство retina не будет загружать графику без сетчатки). Вот почему Apple создала каталоги активов и такого рода правила, чтобы следовать. Они описывают это в своих сеансах.
короче говоря, это уменьшить использование памяти / диска, так что это все об увеличении производительность и пользовательский опыт
прежде всего, вам нужно знать точки против поведения пикселей. На устройствах без сетчатки соотношение точек и пикселей составляет 1 балл=1pixel. На устройствах retina существует два соотношения:1 точка = 2x2 пикселей в зависимости от размера экрана, и 1 точка=3x3 пикселей, из-за плотности пикселей, то есть в четыре раза смотреть на не сетчатке.
вот почему вам нужно это 3 типа изображений, которые будут показаны на самом высоком разрешении.
дополняя то, что сказал Султан:
поскольку вы не умилостивили правильные изображения для конкретного устройства,он должен масштабироваться или масштабироваться. Эти процессы будет используйте свою память и обработку, что может привести к снижению производительности, в зависимости от того, сколько изображений за один раз вы делаете это и размер изображения.
Если вы предоставляете только одно большое изображение, вы сталкиваетесь с несколькими проблемами:
- уменьшение масштаба приводит к потере качества (даже если оно не огромно)
- для уменьшения масштаба изображения требуется больше вычислительной мощности, чем для отображения уже предварительно отрисованного изображения
- размер вашего двоичного файла увеличивается, и вы не можете извлечь выгоду из истончения приложения, которое вводится с iOS 9.
Как вы можете видеть, производство только одного изображения будет повлияйте на производительность и качество вашего приложения, и это непропорционально ударит по тем, у кого более старые устройства. Это потому, что:
- Они должны уменьшить масштаб больше. Кроме того, производительность их устройств не так хороша, как у новых, поэтому они гораздо чаще замечают лаги с вашим приложением
- Они не имеют столько места для хранения, так что вы действительно хотите, чтобы иметь возможность использовать приложение истончение, чтобы помочь им
- потеря качества будет самой высокой для их и учитывая то, что разрешение их устройств низкое, они это заметят.
из-за этого пользователи, вероятно, будут недовольны, и это плохо для вас. Потому что, по моему опыту, несчастные пользователи в 10 раз чаще оценивают ваше приложение, чем счастливые пользователи. Ты ведь этого не хочешь, правда? :)

Comments