开发中,例如: nanshanImage.image=[UIImage imageNamed:@'index_pic.png'];

在项目中还保存中index_pic@2x.png的图片,此图为了只适应960*640的分辨率手机

注意:适应Iphone5的相关图片尺寸,也要加@2x.png。比如欢迎界面:Default-568h@2x.png;这个才能匹配上。

而index_pic.png是适应640*320的手机,但是在代码中必须写成[UIImage imageNamed:@'index_pic.png'];这样系统自动会根据不同分辨率手机决定是否调用index_pic@2x.png还是index_pic.png,会自动根据分辨率来匹配用哪张图。

可是如果写成[UIImage imageNamed:@'index_pic@2x.png'];那么系统无法自动判断,根据640*320分辨率来调用index_pic.png图片,系统只会将index_pic@2x.png这一张图当做某控件的图片,不会自动寻找匹配。

因此,开发中[UIImage imageNamed:@'index_pic.png'];里面的图片都是用小分辨率格式名的图片,这样会自动适应大分辨率图片,直接调用。

UIImage类处理了所有需要加载高分辨率图片到应用中的工作。当创建一个新的image对象后,只要以同样的名称来同时请求图片的标准版和高分辨率版即可。例如,如果有两张图片文件,名为Button.png和Button@2x.png,只要用以下代码请求图片即可:

UIImage* anImage = [UIImage imageNamed:@'Button'];

注意,在IOS4及以后的版本,可以省略文件扩展名而只提供图片名称即可。

在高分辨率显示屏下, imageNamed:, imageWithContentsOfFile:, 和initWithContentsOfFile: 方法自动查找具有@2x名称的图片(注意:如果@2x.png图片与.png图片必须放在项目同一包下,才能自动查找)。如果找到,则会加载该图片。如果没有提供给定图片的高分辨率版本,image对象仍会加载标准版的图片资源,并在绘画过程中将其缩放。如果有提供给定图片的高分辨率版本,但是没有标准版的图片,在标准版显示屏下不会加载高清的图片。

说明:1,Create folder references for any added folders

创建引入的是蓝色的文件夹结构,物理路径。 利用imageWithContentsOfFile获取图片,@2x.png与.png必须在同一蓝色目录下。

2,Create groups for any added folders

导入文件的时候会是逻辑结构,而不是物理结构,目录结构图标如下,黄色的文件夹结构,和构建的Group是一样的,@2x.png与.png可在黄色不同的文件夹下(因为没有物理路径,引用的图片路径其实在同一路径下)。

注意:xib中选择图片做背景时,也是一样的原理!也是选择不带@2x的,这样会自带根据分辨率匹配是否使用小图还是@2x大图!

开发中,例如: nanshanImage.image=[UIImage imageNamed:@'index_pic.png'];

在项目中还保存中index_pic@2x.png的图片,此图为了只适应960*640的分辨率手机

注意:适应Iphone5的相关图片尺寸,也要加@2x.png。比如欢迎界面:Default-568h@2x.png;这个才能匹配上。

而index_pic.png是适应640*320的手机,但是在代码中必须写成[UIImage imageNamed:@'index_pic.png'];这样系统自动会根据不同分辨率手机决定是否调用index_pic@2x.png还是index_pic.png,会自动根据分辨率来匹配用哪张图。

可是如果写成[UIImage imageNamed:@'index_pic@2x.png'];那么系统无法自动判断,根据640*320分辨率来调用index_pic.png图片,系统只会将index_pic@2x.png这一张图当做某控件的图片,不会自动寻找匹配。

因此,开发中[UIImage imageNamed:@'index_pic.png'];里面的图片都是用小分辨率格式名的图片,这样会自动适应大分辨率图片,直接调用。

UIImage类处理了所有需要加载高分辨率图片到应用中的工作。当创建一个新的image对象后,只要以同样的名称来同时请求图片的标准版和高分辨率版即可。例如,如果有两张图片文件,名为Button.png和Button@2x.png,只要用以下代码请求图片即可:

UIImage* anImage = [UIImage imageNamed:@'Button'];

注意,在IOS4及以后的版本,可以省略文件扩展名而只提供图片名称即可。

在高分辨率显示屏下, imageNamed:, imageWithContentsOfFile:, 和initWithContentsOfFile: 方法自动查找具有@2x名称的图片(注意:如果@2x.png图片与.png图片必须放在项目同一包下,才能自动查找)。如果找到,则会加载该图片。如果没有提供给定图片的高分辨率版本,image对象仍会加载标准版的图片资源,并在绘画过程中将其缩放。如果有提供给定图片的高分辨率版本,但是没有标准版的图片,在标准版显示屏下不会加载高清的图片。

说明:1,Create folder references for any added folders

创建引入的是蓝色的文件夹结构,物理路径。 利用imageWithContentsOfFile获取图片,@2x.png与.png必须在同一蓝色目录下。

2,Create groups for any added folders

导入文件的时候会是逻辑结构,而不是物理结构,目录结构图标如下,黄色的文件夹结构,和构建的Group是一样的,@2x.png与.png可在黄色不同的文件夹下(因为没有物理路径,引用的图片路径其实在同一路径下)。

注意:xib中选择图片做背景时,也是一样的原理!也是选择不带@2x的,这样会自带根据分辨率匹配是否使用小图还是@2x大图!

IOS开发中@2x图片等适应不同分辨率手机的更多相关文章

  1. iOS开发中图片方向的获取与更改

    iOS开发中 再用到照片的时候  或多或少遇到过这样的问题  就是我想用的照片有横着拍的有竖着排的  所以导致我选取图片后的效果也横七竖八的   显示效果不好 比如: 图中红圈选中的图片选取的是横着拍 ...

  2. 【Swift】图文混排,ios开发中在textfield或textView中插入图片

    在ios开发中,我们一般都是在textfield或者textView中输入文字.当我们需要插入图片的时候其实也是很简单的 我们需要利用的textfield,textView的属性化文本,将图片以附件的 ...

  3. iOS开发中关于UIImage的知识点总结

    UIImage是iOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有 CGImage,以及iOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: image ...

  4. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

  5. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  6. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  7. IOS开发中设置控件内容对齐方式时容易混淆的几个属性

    IOS开发中四个容易混淆的属性: 1. textAligment : 文字的水平方向的对齐方式 1> 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NST ...

  8. 【转】IOS开发中图片资源使用png还是jpg格式

    对于iOS本地应用程序来说最简单的答案就是始终使用PNG,除非你有非常非常好的理由不用它. 当iOS应用构建的时候,Xcode会通过一种方式优化.png文件而不会优化其它文件格式.它优化得相当的好 他 ...

  9. 多线程在iOS开发中的应用

    多线程基本概念 01 进程 进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 02 线程 2-1 基本概念 1个进程要想执行任务,必须得有线程 ...

随机推荐

  1. oracle触发器调用java程序

    1.创建java程序:接收存储过程传递的参数,发送socket通信. create or replace and compilejava source named jym as import java ...

  2. 【BZOJ-4592】脑洞治疗仪 线段树

    4592: [Shoi2015]脑洞治疗仪 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 69  Solved: 38[Submit][Status] ...

  3. Jenkins 2.x新建节点配置(Windows)

    2.0版本以上默认加入了权限插件,所以在进入主界面时是需要登录的. 一.主界面->[系统管理]->[管理节点]->[新建节点],进行节点的添加: 二.输入节点名称,已经选择[Perm ...

  4. VisualSVN Server搭建VDFS分布式仓研究(未成功)

    FSFS与VDFS的使用区别在于FSFS是本地仓库,VDFS是分布式仓库,实现在同一个局域网内多台仓库进行同步:以下是我的猜测,因为没搭建成功: 1.必须是同一个局域网,如果有外内网基本是不可实现,需 ...

  5. WHMCS系统API调用

    WHMCS:域名管理系统,现在网络上很多借助此系统Shadowsocks插件+ShadowsocksR多用户服务端进行VPN的售卖,能做到流量控制等. 在对接此系统的API时,我发现了很多功能都已经实 ...

  6. Linux、Windows Server Password Security Policy Strengthen

    catalog . windows Security and Protection(Logon and Authentication) . windows密码强制安全策略 . PAM(Pluggabl ...

  7. 机器学习笔记--KNN算法1

    前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的狐朋狗友算法---KNN算法,为什么叫狐朋狗友算法呢,在这里我先卖个关子,且听我慢慢道来. 一 K ...

  8. python调用ggsci.exe程序

    需求:通过python调用windows server 2008下的ogg同步程序,实现图形化控制. 简单GUI

  9. bigdecimal类型数据的min方法

    java.math.BigDecimal.min(BigDecimal val) 返回此BigDecimal和val的最小值. 声明 以下是java.math.BigDecimal.min()方法的声 ...

  10. PHP获取当前日期和时间及格式化方法参数

    使用函式 date() 实现 <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 相关时间 ...