为通用应用程序准备图形资产

时间:2011-08-24 14:46:06

标签: ios graphics retina-display

从我在其他地方读到的内容,Apple推荐每个图形资产的多个版本,因此在iPhone 4之前,iPhone 4(带有视网膜显示屏)和iPad之间会保留质量。但是我使用的技术只需要一个资产来处理所有三种情况。

我将每张图片设置为iPhone 4和iPad所需的尺寸,例如500 x 500像素的猫。我将其命名为 myCat@2x.png 。当我为iPhone阅读时:

CGRect catFrame = CGRectMake(0.0f, 0.0f, 250.0f, 250.0f);
UIImageView *theCat = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myCat"]];
theCat.frame = catFrame;
[self.view addSubview:theCat];
[theCat release];

对于iPad,除了:

之外我做同样的事情
CGRect catFrame = CGRectMake(0.0f, 0.0f, 500.0f, 500.0f);

这似乎在所有三种情况下都能正常工作,并且大大减少了图形文件的数量(和大小)。这种技术有什么问题吗?

3 个答案:

答案 0 :(得分:0)

检查一下:http://vimeo.com/30667638 我们很快就会发布它。如果您对beta测试感兴趣,请给我一个lineEdit

答案 1 :(得分:0)

这个问题已经流传很长时间了,所以我会根据我对最近几个应用程序的经验来“回答”它。

我认为没有理由为视网膜显示器和非视网膜显示器iPhone配备单独的图像资源。我上面概述的技术似乎工作正常。

可能需要iPad的单独资产(“资源文件”),主要是为了改变屏幕的宽高比。在我的情况下(儿童游戏的精灵),我能够在iPad上使用许多iPhone图像。 “外观”有点不同,但我节省了大量的文件空间。

这对您是否有效当然取决于项目的独特属性。

答案 2 :(得分:0)

并非所有图像都能很好地扩展,即使是50%也是如此。抖动或模式可能会失真。一般来说,缩放因子为1 / 2,1 / 4等(除以2)将产生最佳结果,但使用Photoshop中使用的高级算法缩小将产生更好的结果。

因此,在大多数情况下,这可以产生可接受的结果。