Это зависит. Конечно, более экономично использовать одно изображение - или одно изображение на соотношение сторон, если усечение изображения вызовет проблему.
Для изображений, подобных фотографиям, это может быть совершенно приемлемым, поскольку такие изображения не включают в себя пиксельные функции.
Если мы имеем дело с графическим оформлением, тем не менее - тонкие линии, острые контуры, идеальные пиксельные функции - масштабирование может серьезно ухудшить качество.
Рассмотрим следующий пример: Представьте, что вы хотите создать настраиваемое текстовое поле с фиксированным размером. Текстовая область должна быть заключена черным контуром с шириной линии 1px. Вы используете разрешение сетчатки для своих работ, и отправной точкой является размер экрана 4 дюйма. Как будет отображаться окно на других размерах экрана, если текстовое поле масштабируется вместе с экраном? И как оно будет выглядеть на фоне -ретина-дисплей?
Non-Retina: разрешение должно быть уменьшено в два раза. Представьте себе блок из 2x2 пикселей в вашем обложке - его нужно будет вычислить в один пиксель. Наша схема имеет ширину всего 1 пиксель, поэтому 2x2 пиксельный блок с проходящей через него линией содержит два черных и два белых пикселя. Результирующий пиксель без сетчатки будет серым. На самом деле масштабирование немного сложнее, но результат будет размытым, менее черным и чуть более толстым
Масштабируемая сетчатка: разрешение должно быть увеличено. Представьте себе устройство с разрешением олицетворения 1,5x 4-дюймового экрана. Строка 1px должна быть шириной 1,5 пикселя, что, очевидно, не будет работать. Вместо этого исходная линия 1px будет растянута до серой шкалы на два (или более) пикселя, приближаясь к «количеству черноты», которое имеет линия 1,5px.
В любом случае (вверх или вниз) масштабирование сделает контур размытым, толстым и менее черным.
Пример не идеальный, поскольку iOS позволяет определять изображения с растяжимыми частями, которые отлично масштабируются. Для нашей прямоугольной коробки это было бы возможно. Тем не менее, это не работает для более сложных работ.
Если пиксель совершенство является обязательным, нет никакого пути вокруг изображений для каждой графики разрешения или векторной (Quartz/SVGKit/...)
Edit: я воспроизвел мой пример в Photoshop, используя масштабирование билинейного , Он может выглядеть несколько иначе на устройстве, потому что он может использовать другой алгоритм масштабирования. Но я думаю, вы получите точку ...
Вы можете создать все свои изображения для 3x и просто оттуда. Например, 150x150 = 3x, 100x100 = 2x, 50x50 = 1x. Если вы не имеете дело со сотнями изображений, например последовательностями, уменьшение масштаба не так много, но результаты покажут. – sangony