疑问:
就iphone来说分辨率有三种,320*480、 640*960、 640*1136
那么如果我想做图,如果是320*480
1、是不是所有的图片,比如按钮的,背景图的,尺寸都必须做成小于或等于320*480的分辨率,
2、是否可以做一张大图在320*480中的分辨率中使用
3、如果是ipad的话是不是图片的分辨率要相应的提高
解答
只需要做 320*480 640*960的两套图
大图名字后面加@2x
例如:aaa.png是小图(320*480)
aaa@2x.png就是大图(640*960)
只要名字这样起,系统会自动识别设备,用相应的图片。
如果是iphone5也是用640*960的图片,只不过要在工程配置文件里加一个iphone5对应分辨率的开机图就可以啦
详解
iPhone/iPod Touch
普屏分辨率 320像素 x 480像素
Retina分辨率 640像素 x 960像素
iPad,iPad2/New iPad
普屏 768像素 x 1024像素
Retina屏 1536像素 x 2048像素
首先我们需要明确一点,iOS设备上图片兼容retina的问题最初是由于iPhone4的分辨率由iPhone3的320X480提升到了640X960所产生。
为了让iPhone4能够兼容iPhone3上开发的APP,苹果设计了逻辑分辨率单位Point。在 iPhone3 上 1个 Point 相当于 1个pixel ; 而 iPhone4 上1个 point 就相当于4个 pixel。因此所有的iPhone,iTouch都可以认为拥有320X480的逻辑分辨率,这保证了所有的APP不经过修改也能正常的在高分辨率的设备上运行,只是原来的图片会在拉伸后显示在设备上,会影响美观。
开发人员在开发过程中如何避免此种情况发生呢?
1.UI静态加载图片的情况下
作为开发人员的我们需要美术人员提供两套图片,一套适应320X480分辨率,另一套适应640X960分辨率。
比如需要使名字为“background.png”,大小为220X350的图片兼容retina,那么就需要美术人员提供一张440X700的图片,我们将其名称命名为“background@2x.png”之后添加到项目中即可。如此,我们直接使用程序中原来的代码就可以达到目的。
[UIImage imageNamed:@"background.png"];
2.如果APP中使用从网络异步获取的图片来显示或者是游戏中动态生成图片后显示,则需要在代码中加入对不同设备、屏幕分辨率的判断来获取或者生成不同大小的图片
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2) { // 获取或者加载高清图片 } else { // 获取或者加载普通图片 }