2

我正在尝试创建一个与视网膜和非视网膜显示器兼容的应用程序。我正在使用高分辨率图像并让操作系统按比例缩小它们以用于非视网膜显示器。

这些图像被命名为 xxx@2x.png 并且我使用相同的名称加载。这可行,并且图像在两种设备类型上以相同的相对大小显示。不幸的是,非视网膜显示屏上调整大小的图像质量远非理想。

self.navigationItem.rightBarButtonItem.image = [localAssets imageAtPath:@"content/home/settings@2x.png"];

+ (UIImage*)imageAtPath:(NSString*)path;
{
    NSString* extension = [path pathExtension];
    path = [path stringByDeletingPathExtension];

    NSString* filePath = [[NSBundle mainBundle] pathForResource:[path lastPathComponent] 
                                                         ofType:extension 
                                                    inDirectory:[path stringByDeletingLastPathComponent]];
    UIImage* theImage = [UIImage imageWithContentsOfFile:filePath];

    if(!theImage)
    {
        NSLog(@"Error no file found at %@", [path stringByAppendingPathExtension:extension]);
    }
    return theImage;
}

视网膜:

http://i.imgur.com/gmn1q.png

遗产:

在此处输入图像描述

4

1 回答 1

2

如果您自己调整图像大小,并将它们保存为 xxx.png 和 xxx@2x.png,那么您可以将它们用作“xxx”,iOS 将在使用 Retina 显示器时自动使用 @2x 版本。

于 2012-07-05T20:17:58.317 回答