疑问:

就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
{
// 获取或者加载普通图片
}

最新文章

  1. 《jQuery知识点总结》(一)
  2. 搭建Tomcat6源代码阅读环境
  3. [转载] 关于PreparedStatement.addBatch()方法
  4. 使用X-UA-Compatible来设置IE浏览器兼容模式
  5. AOD.net
  6. c++调用matlab生成的Dll动态连接库
  7. Android上实现仿IOS弹性ScrollView
  8. dubbox的provider端嵌套调用问题
  9. C#中关闭子窗口而不释放子窗口对象的方法
  10. linux 查看命令 ls-list
  11. Linux系统下我的/etc/sysconfig/路径下无iptables文件
  12. MySql(六)单表查询
  13. (转)css选择器及其优先级
  14. Mac 下使用 brew 安装软件
  15. S3C6410裸奔之旅——RVDS2.2编译、仿真、调试过程 LED流水灯---转的
  16. 理解git
  17. BZOJ 3098 Hash Killer II
  18. [转]Handler学习笔记(一)
  19. 微信小程序Wepy框架的三个事件交互($broadcast,$emit,$invoke)
  20. windows环境安装docker,并下载lamp镜像

热门文章

  1. POJ 3177 Redundant Paths POJ 3352 Road Construction
  2. esp8266烧写机智云固件方法
  3. codeforces 601A The Two Routes(最短路 flody)
  4. JVM启动参数小结
  5. input value的值不可改变
  6. 25.怎样创建一个Swift项目?
  7. oracle 创建同义词
  8. android手机ping不通linux的ip地址
  9. nginx 配置虚拟主机(支持php)
  10. C++ 初始化与赋值