如果 iPhone 5 把屏幕做大,分辨率跟 iPhone 4 不一样,那以后做 iOS App 怎么处理不同分辨率的问题呢?
按票数排序按时间排序
8 个回答
题目已经假设了iPhone5的屏幕分辨率(而不是屏幕大小)会变大的情况下,不知道下面那些否决这个前提的算不算离题了...
自从iPhone4把屏幕分辨率提升了之后,苹果给开发者提供了一个point的概念,来取代旧的分辨率的概念。
它们假定屏幕上的定位和大小是用point来描述的,而iPhone3和iPhone4的屏幕是由相同的point组成的,都是320pt*480pt,也就是说,对于旧的iPhone,1pt = 1px,而对于retina屏幕,1pt = 2px。
而在代码里面,所有的px的概念都被改成了pt的概念,也就是说,在编程的时候,一个物体对于普通屏幕的坐标跟其对于retina屏幕是一样的(也就是说,以前为普通屏幕所写的代码,可以不需要修改一句代码就可以运行在retina屏幕上)。
然后高清的兼容除了位置和大小的变动之外,app里面图片的大小也变动了。
目前苹果的策略是,允许开发者提供两套图,一套给普通屏幕准备,而另一套给retina屏幕准备,使用文件的名称来区分,比如a.png是普通屏幕的,则a@2x.png则是给retina屏幕的,
但app运行时需要调用图片的时候,系统将自动搜索@2x后缀的图片,如果没有,则自动试用a.png。
所以说,苹果并非没有这方面(修改设备分辨率)的经验,而就第一次而言,苹果使用的策略十分简单,因为并没有对开发者造成太大的困扰。
而且就目前iPhone4的屏幕分辨率而言,我相信已经能够满足用户足够多的时间,而下一次对于显示的改进则不在于分辨率了。
iPad则有可能有分辨率的提升,但仍然可以沿用当前的策略。
自从iPhone4把屏幕分辨率提升了之后,苹果给开发者提供了一个point的概念,来取代旧的分辨率的概念。
它们假定屏幕上的定位和大小是用point来描述的,而iPhone3和iPhone4的屏幕是由相同的point组成的,都是320pt*480pt,也就是说,对于旧的iPhone,1pt = 1px,而对于retina屏幕,1pt = 2px。
而在代码里面,所有的px的概念都被改成了pt的概念,也就是说,在编程的时候,一个物体对于普通屏幕的坐标跟其对于retina屏幕是一样的(也就是说,以前为普通屏幕所写的代码,可以不需要修改一句代码就可以运行在retina屏幕上)。
然后高清的兼容除了位置和大小的变动之外,app里面图片的大小也变动了。
目前苹果的策略是,允许开发者提供两套图,一套给普通屏幕准备,而另一套给retina屏幕准备,使用文件的名称来区分,比如a.png是普通屏幕的,则a@2x.png则是给retina屏幕的,
但app运行时需要调用图片的时候,系统将自动搜索@2x后缀的图片,如果没有,则自动试用a.png。
所以说,苹果并非没有这方面(修改设备分辨率)的经验,而就第一次而言,苹果使用的策略十分简单,因为并没有对开发者造成太大的困扰。
而且就目前iPhone4的屏幕分辨率而言,我相信已经能够满足用户足够多的时间,而下一次对于显示的改进则不在于分辨率了。
iPad则有可能有分辨率的提升,但仍然可以沿用当前的策略。