Лучший способ представить иконки на фоновом изображении - PullRequest
1 голос
/ 24 июля 2011

У меня есть изображение карты (растровое изображение, ~ 4 МБ), которое содержит сервисы (то есть уборные / лифты / выходы / и т. Д.). Исходя из выбора пользователя из таблицы, я хотел бы показать карту только с выбранным сервисом. Например, если пользователь выбирает туалеты, карта отображается с выделенными / подсвеченными только туалетами. У меня есть отдельные иконки для услуг. Есть несколько способов сделать это:

a) Создание статических картографических изображений для каждого сервиса (одно с подсвеченными туалетами, одно с подсвеченными лифтами и т. Д.) Однако для этого потребуется много памяти, поскольку я буду хранить ~ 8 изображений по одному для каждого сервиса (8 * 4 МБ )

b) Имейте одно изображение карты, но динамически рисуйте подсвеченные / выбранные значки на карте, используя координаты. Очень утомительно, отнимает много времени и раздражает.

Есть ли другие способы сделать это? Есть ли способ уменьшить размер файла bmp без потери качества?

Спасибо

Редактировать: пошли с выбором статических изображений выше. Преобразование bmp в png (уменьшено с 4 МБ до 150 КБ).

1 Ответ

0 голосов
/ 24 июля 2011

Честно говоря, я бы подумал, что первый вариант будет "Очень утомительным, отнимает много времени и раздражает".

Предположим, вы узнали, что была добавлена ​​еще одна ванная комната. Я бы предпочел ввести координаты X и Y и покончить с этим.

Я бы создал массив координат x и y и использовал бы цикл for для добавления ванных комнат. Перетащите значки в imageViews и покончите с этим.

// Mock code
for (Bathroom *bathroom in bathroomArray) {
    UIImageView *bathroomImgView = [[UIImageView alloc] init];
    bathroomImgView.image = [UIImage imageNamed:@"BathroomIcon.png"];
    bathroomImgView.center = CGPointMake(bathroom.x, bathroom.y);
    [mapHolder addObject:bathroomImgView];
}

В приведенном выше коде предполагается, что у вас есть UIView, окружающий растровое изображение карты, и набор пользовательских объектов, каждый из которых имеет значения x и y в массиве с именем bathroomArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...