iOS 2x 3x
iOS中:
备注:
Retina是一种显示技术,可以将把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度。而其最初该技术是用于苹果的iPhone4上。其屏幕分辨率为960×640(每英寸像素数326ppi)。这种分辨率在正常观看距离下足以使人肉眼无法分辨其中的单独像素。
坐标系是用的是点point,而不是pixel像素
旧的iOS设备,不带retina屏幕:
iPhone, iPhone3G, iPhone3GS, iPad, iPad 2, iPad mini, and early iPod touches
中,一个点=一个像素
新的iOS设备,带retina屏幕:
iPhone 4, iPad with Retina Display, and iPod touch 4
一个点=2个像素=对应带图片:
在原有(假如是png图片)xxx.png基础上
再新增加一个,分辨率更高的图片,图片名写成:xxx@2x.png
而无需改变程序的代码,即可-》xcode会帮你自动处理图片
如上所述:
更新的iOS设备:
iPhone 6 Plus
屏幕更精细,分辨率更高,则:
需要更高精细度的图片,图片名写成:xxx@3x.png
而对于@2x和@3x的图片,除了更加清晰之外,是否会包含显示更多内容,则取决你自己。
xcode中,根据需要,制作或得到对应的1x,2x,3x的图片,放到xcode的images文件夹下即可。
然后程序中,代码中,直接加载图片即可正常显示。
开发中,例如:
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 3x的更多相关文章
- python Image resize 对iOS图片素材进行2X,3X处理
通常在iOS上开发使用的图片素材1x,2x,3x三种 下面利用python Image 库 resize函数,由一个大图,自动生成1x,2x,3x的素材照片: 1. 首先你的python环境要安装有I ...
- Android @1x,@2x,@3x 资源文件自动分包工具
version 1.2 1.修改不用输入扩展名 2.输出路径可选.默认会在输入路径下建文件夹 前沿: 现在开发中ios,android会使用一套图,但是ui设计师给的图命名是以@1x,@2x,@3x这 ...
- 图片背景2X && 3X
图片背景2X && 3X @media (-webkit-min-device-pixel-ratio: 3),(min-device-pixel-ratio: 3){ .share_ ...
- iOS开发 2x 3x图
众所周知,iOS开发中的图片资源一般需要2倍图和3倍图,也就是2x,3x,但是最近思考了一个问题,为什么不能只提供3x的图片,2x的图片让系统从3x压缩就好了,于是上网搜索了下,得到了答案. 当我们在 ...
- 使用@media实现移动端使用@2x,@3x切换
/*dpr比值为1的css代码 */ div{ width:300px; height:200px; background:url(img/button@1x.png) ; } /* dpr比值为 ...
- 移动端开发为什么使用@2x@3x图片
物理.逻辑与位图像素的概念 关于设备物理像素和逻辑像素,这两个像素一个是实体的,一个是抽象的单位.除此之外还有一个不可忽视的像素,就是位图像素. 物理像素(设备像素):指的是设备屏幕实际拥有的像素点. ...
- IOS @2X.png
[UIImage imageNamed:@"xxx.png"] 或者xib里iPhone4会自动找*@2x.png initWithContentOfFile:pathToImag ...
- iOS代码瘦身实践
1 分析当前ipa的组成 一般一个ipa会包含: 1) 资源文件 本地文件:数据.配置.数据库等等 字体文件 图片资源 2) 源代码 通过生成linkmap文件,分析源代码生成的编译文件的大小.在B ...
- ios 和安卓常用图标、启动图 尺寸
---------------------------------------------ios---------------------------------------------------- ...
随机推荐
- oracle中110个常用函数介绍
1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dua ...
- supervisor笔记
supervisord 作为主进程,管理旗下的各个子进程,子进程会产生若干线程.当某个管理的服务异常奔溃之后,supervisor 会自动重启该服务.配合使用 superlance 插件以实现 Htt ...
- Gdevops2016年全球敏捷运维峰会【上海站】嘉宾阵容
2016年全球敏捷运维峰会(Gdevops, Global Devops Summit)将于2016年在杭州.北京.广州.上海四城全面启动,本次峰会旨在搭建一个开发者与 运维者沟通交流的平台,围绕各种 ...
- PAT 团体程序设计天梯赛-练习集 L1-019. 谁先倒
给出甲.乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒. 输入格式: 输入第一行先后给出甲.乙两人的酒量(不超过100的非负整数),以空格分隔.下一行给出一个正整数N(<=1 ...
- img 鼠标滑上后图片放大,滑下后图片复原
<style type="text/css">img{ -webkit-transition: ease .2s; transition: ease .2s; -web ...
- POJ 2484 A Funny Game(找规律)
题目链接 #include<iostream> #include<cstdio> using namespace std; int main() { int n; while( ...
- jquery获取li中的各项属性值attr
发布新内容时的设计 默认显示一个按钮 如:发布按钮(放在h3字体里面)(鼠标上面时.显示发布到哪个模块下拉菜单发在li里面) $('#pup_model li , #pup_model h3').cl ...
- brctl 的使用
brctl 作用: 用来进行以太网桥接(bridge)的管理 主要用法如下: root@hbg:/# brctl --helpBusyBox v1.22.1 (2016-02-24 11:41:04 ...
- 关于c++中方法名前面的双冒号
#include "iostream" using namespace std; template <typename T> void swap(T &a, T ...
- Leetcode 073 Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click ...