如何适应iPhone 4的屏幕分辨率?

don*_*ile 27 iphone screen-resolution

根据Apple的说法,iPhone 4有一个新的更好的屏幕分辨率:

3.5英寸(对角线)宽屏多点触控显示屏
,分辨率为960×640像素,分辨率为326 ppi

这个小细节会严重影响我们的应用程序.网上的大多数演示应用程序都有一个共同点:他们认为屏幕的固定大小为320 x 480像素.因此,大多数(如果不是全部)开发人员所做的是:他们以这样的方式设计所有东西,可触摸区域(例如)50 x 50像素大.足以点击它.事情已经相对于左上方定位,以达到屏幕上的特定位置 - 让我们说中心,或者在底部的某个位置.

当我们开发高分辨率应用程序时,它们可能无法在旧设备上运行.如果他们这样做,他们将遭受4倍于任何图像大小的痛苦,不得不在内存中缩小它们.

ohh*_*hho 15

根据支持高分辨率屏幕的观点,来自Apple文档:

在具有高分辨率屏幕,设备imageNamed:, imageWithContentsOfFile:initWithContentsOfFile:方法自动查找与一个版本的请求的图像@2x 在其名称修改.如果找到一个,它会加载该图像.如果您未提供给定图像的高分辨率版本,则图像对象仍会加载标准分辨率图像(如果存在)并在绘图期间对其进行缩放.

加载图像时,UIImage对象会根据图像文件的后缀自动将大小和比例属性设置为适当的值.对于标准分辨率图像,它将scale属性设置为1.0,并将图像的大小设置为图像的像素尺寸.对于文件名中带有@ 2x后缀的图像,它将scale属性设置为2.0,并将width和height值减半,以补偿比例因子.这些减半的值与您需要在逻辑坐标空间中用于渲染图像的基于点的尺寸正确关联.

  • @mystify,我的理解`@ 2x`是这个名字的一部分.引用相同的pdf,"例如,如果您有两个图像文件,名为`Button.png`和`Button @ 2x.png`,您将使用以下代码来请求您的按钮图像:`UIImage*anImage = [ UIImage imageNamed:@"Button"];`" (3认同)

Pau*_*der 6

这纯粹是猜测,但如果分辨率的确是960×640 - 这正是高两倍的分辨率为当前版本.这将是平凡简单的iPhone来检查应用程序构建目标和检测应用程序的旧版本,并简单地通过2缩放你永远不会发现其中的差别.

  • 为"你永远不会注意到差异"的+1. (2认同)

Pau*_*xon 5

Engadget对主题演讲的报道包括史蒂夫乔布斯的以下成绩单

...它使您的应用程序自动运行,但它以更高的分辨率呈现您的文本和控件.你的应用程序看起来更好,但如果你做一些工作,那么它们看起来会很棒.所以我们建议你这样做

因此,我推断,如果您使用现有的API,您的应用程序将扩大规模.如果您利用新的iOS4 API,您可以使用新像素获得所有groovy.