表示在背景图象的象的最佳的方式

时间:2011-07-24 08:34:33

标签: iphone objective-c image map bitmap

我有一个包含服务的地图图像(位图,~4MB)(即洗手间/电梯/出口等等)。根据用户从表格中的选择,我想仅显示所选服务的地图。例如,如果用户选择洗手间,则显示地图,仅显示彩色/突出显示的洗手间。我有单独的服务图标。有几种方法可以做到这一点:

a)创建每个服务的静态地图图像(一个突出显示洗手间,一个突出显示电梯等。)然而,这将使用大量内存,因为我将为每个服务存储~8个图像(8 * 4MB )

b)拥有一张地图图片,但使用坐标在地图上动态绘制突出显示/选定的图标。非常乏味,耗时,烦人。

还有其他方法可以解决这个问题吗?有没有办法减少bmp文件图像大小而不会消除质量?

由于

编辑:使用上面的静态图像选择。将bmp转换为png(从4MB降至150KB)。

1 个答案:

答案 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值。