我有一个包含服务的地图图像(位图,~4MB)(即洗手间/电梯/出口等等)。根据用户从表格中的选择,我想仅显示所选服务的地图。例如,如果用户选择洗手间,则显示地图,仅显示彩色/突出显示的洗手间。我有单独的服务图标。有几种方法可以做到这一点:
a)创建每个服务的静态地图图像(一个突出显示洗手间,一个突出显示电梯等。)然而,这将使用大量内存,因为我将为每个服务存储~8个图像(8 * 4MB )
b)拥有一张地图图片,但使用坐标在地图上动态绘制突出显示/选定的图标。非常乏味,耗时,烦人。
还有其他方法可以解决这个问题吗?有没有办法减少bmp文件图像大小而不会消除质量?
由于
编辑:使用上面的静态图像选择。将bmp转换为png(从4MB降至150KB)。
答案 0 :(得分:0)
老实说,我认为第一个选择是“非常乏味,耗时,烦人。”
假设您发现已添加另一间浴室。我更喜欢放入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,以及一组自定义对象,每个对象都有一个名为bathroomArray的数组中的x和y值。