27

根据Apple的说法,iPhone 4 拥有全新且更好的屏幕分辨率:

3.5 英寸(对角线)宽屏 Multi-Touch 显示屏
960 x 640 像素分辨率,326 ppi

这个小细节严重影响了我们的应用程序。网络上的大多数演示应用程序都有一个共同点:它们定位视图时认为屏幕具有 320 x 480 像素的固定尺寸。所以大多数(如果不是全部)开发人员所做的是:他们以这样的方式设计所有东西,即可触摸区域(例如)50 x 50 像素大。只需轻按即可。事物已相对于左上角定位,以到达屏幕上的特定位置 - 比如说中心或底部的某个位置。

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

4

8 回答 8

15

根据Apple 文档中的Supporting High-Resolution Screens In Views

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

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

于 2010-06-08T07:34:02.987 回答
6

这纯粹是推测,但如果分辨率真的是 960 x 640 - 那就是当前版本的分辨率的两倍。iPhone 检查应用程序构建目标并检测应用程序的旧版本并简单地将其缩放 2 是非常简单的。你永远不会注意到差异。

于 2010-06-07T19:20:01.970 回答
5

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

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

所以我由此推断,如果您使用现有的 API,您的应用程序将得到扩展。如果您利用新的 iOS4 API,您可以通过新的像素获得所有的 groovy。

于 2010-06-07T19:17:32.567 回答
4

听起来显示会没问题,但我担心我的游戏中的逻辑。touchesBegan 位置会在新分辨率中返回点吗?屏幕边界会有所不同,这些类型的东西对我来说可能是个问题。

于 2010-06-08T01:14:55.563 回答
3

出于显示目的缩放到双分辨率是直截了当的,但是这种缩放是否适用于所有输入/输出屏幕坐标的 api?如果不是,事情就会破裂,不是吗?

如果它在整个框架中得到广泛处理就足够公平了。我想有很多潜在的 api 的这种影响。

于 2010-06-08T06:05:06.537 回答
3

对于来此线程寻找移动 Web 界面解决方案的人,请查看 Webkit 博客上的这篇文章:http ://webkit.org/blog/55/high-dpi-web-sites/

Webkit 似乎在四年前就解决了这个问题。

于 2010-06-10T15:23:16.090 回答
2

是的,它是真实的。

根据 WWDC 的说法,苹果似乎已经为它构建了某种形式的自动转换,这样应用程序的分辨率就不会完全关闭。考虑将 dvd 上转换为 HDTV。

我的猜测是,苹果知道大多数标准开发人员一直在使用什么,并且已经使用这些标准进行即时转换。当然,如果您正在编写应用程序以利用新分辨率,它看起来会比苹果自动转换的结果要好得多。

于 2010-06-07T19:18:20.603 回答
2

您的所有标签和系统按钮都将采用 326dpi,但在您添加高分辨率资源之前,您的图像仍将像素翻倍。我目前正在更新我的应用程序。如果您在 iPhone 4 sim 上构建并运行,那么它会显示为 50%,请转到 Window > Scale > 100% 以查看真正的差异!标签很光滑,我的图像看起来很震撼!

于 2010-06-13T13:59:02.253 回答