iOS中的2x,3x问题
iPhone的屏幕显示效果非常出色。刚进入市场时,iPhone是当时分辨率最高的手持电子设备。不过,iPhone 的显示空间并不大,比现代计算机的屏幕空间要小很多。最初几代iPhone的屏幕分辨率只有320像素×480像素,从iPhone 4的Retina屏幕开始,分辨率增加到了640像素×960像素。目前最大iPhone(即iPhone 6 Plus)的屏幕分辨 率达到了1080像素×1920像素。这听起来像是个很平常的数字,不过要记住如此高密度的像素点(苹果公司用术语Retina来表示)被塞入了非常小的单位中,这对于iPhone和iPad上各种应用程序以及交互体验有重大的影响。 表1-1列出了在编写本书时iOS 8支持的所有设备的屏幕尺寸。
硬件尺寸指的是屏幕的实际物理尺寸,以像素为单位。不过在编写软件时只需要注意软件尺寸一栏的数字。 如你所见,软件尺寸大都是实际硬件尺寸的一半。这种情况是苹果公司引入第一代Retina设备后开始出现的,其像素数量在长度和宽度上都是上一代的两倍。如果苹果公司不作任何处理的话,所有现有的应用程序在新的Retina屏幕上都会只占据一半的尺寸,无法正常使用。因此苹果公司选择将应用程序绘制的所有内容都在内部乘以2,这样不需要作任何代码改动就可以将其铺满新屏幕。所有使用Retina屏幕的设备都采用了内部乘以2的机制,但iPhone 6 Plus有些例外,这是因为它拥有更高精密度的屏幕,需要乘以3。通常来说,你无需担心应用程序实际放大的倍数,只需要根据软件屏幕尺寸进行开发,剩下的事情交给iOS来做就行了。
唯一不适用于这个规则的是位图。由于位图自身的尺寸是固定的,你无法让同一张图片在Retina屏幕和非 Retina屏幕上拥有一样好的效果。如果尝试这样做,会看到iOS为Retina屏幕设备将图片放大,从而产生了模糊的感觉。你可以通过为每张图片补充2倍和3倍尺寸的副本来解决这个问题,iOS会根据应用程序运行的设备屏幕来选取合适的那张。
iOS中的2x,3x问题的更多相关文章
- python Image resize 对iOS图片素材进行2X,3X处理
通常在iOS上开发使用的图片素材1x,2x,3x三种 下面利用python Image 库 resize函数,由一个大图,自动生成1x,2x,3x的素材照片: 1. 首先你的python环境要安装有I ...
- iOS 2x 3x
iOS中: 备注: Retina是一种显示技术,可以将把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度.而其最初该技术是用于苹果的iPhone4上.其屏幕分辨率为960×6 ...
- Android @1x,@2x,@3x 资源文件自动分包工具
version 1.2 1.修改不用输入扩展名 2.输出路径可选.默认会在输入路径下建文件夹 前沿: 现在开发中ios,android会使用一套图,但是ui设计师给的图命名是以@1x,@2x,@3x这 ...
- IOS中图片加载的一些注意点
图片的加载: [UIImage imageNamed:@"home"] //加载 png图片 在ios中获取一张图片只需要写图片名即可 不需要写后缀 默认都是加载.png的图片 但 ...
- IOS中调用系统的电话、短信、邮件、浏览功能
iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...
- (转)在iOS中使用icon font
http://ued.taobao.org/blog/?p=8579 在开发阿里数据iOS版客户端的时候,由于项目进度很紧,项目里的所有图标都是用最平常的背景图片方案来实现.而为了要兼容普通屏与Ret ...
- 有关ios中images.xcassets的导入图片等命名问题
最近遇到一个问题,就是在设置启动图片的时候,把启动图片命名设置为了xxx@2x.png, 然后应用死活没有显示启动图片,调试了很久,才发现是因为文件命名的原因. 1. 如果在图片的下方有2x或3x的标 ...
- 在iOS中使用icon font
博文转载至 http://www.cocoachina.com/industry/20131111/7327.html 在开发阿里数据iOS版客户端的时候,由于项目进度很紧,项目里的所有图标都是用最平 ...
- iOS中支付宝集成
iOS中支付宝集成 如今各种的App中都使用了三方支付的功能,现在将我在使用支付宝支付集成过程的心得分享一下,希望对大家都能有所帮助 要集成一个支付宝支付过程的环境,大致需要: 1>公司:先与支 ...
随机推荐
- MQ报错java.lang.IllegalStateException: Failed to load ApplicationContext
这个问题是jdk版本造成的,把jdk1.8换成jdk1.7问题就解决了
- 学渣乱搞系列之扩展KMP的那点事
扩展KMP牵涉了一些相对运动的姿势,比较费解!本学渣看了一天的扩展KMP,打算写点东西...本文看后,出现的后果本人一概不负责.毕竟我不是很会表达. 扩展KMP是搞什么灰机的?本学渣所知道的扩展KMP ...
- 图的最小生成树——Kruskal算法
Kruskal算法 图的最小生成树的算法之一,运用并查集思想来求出最小生成树. 基本思路就是把所有边从小到大排序,依次遍历这些边.如果这条边所连接的两个点在一个连通块里,遍历下一条边,如果不在,就把这 ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John【anti-SG】
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取 ...
- ES6__Symbol
/** * Symbol */ /** * 1 什么是 Symbol ? * Symbol,表示独一无二的值.它是 JS 中的第七种数据类型. */ // 基本的数据类型: Null Undefine ...
- python学习之-- 面向对象
面向对象(简写:OOP) 面向对象编程定义:利用类和对象来创建各种模型,来实现对真实世界的描述. 优点:使程序更容易理解和维护以及扩展代码. 类定义:用来描述具有相同的属性和方法的对象的集合.(简单讲 ...
- PAT (Advanced Level) 1037. Magic Coupon (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- 动态规划:Ignatius and the Princess IV
#include<stdio.h> #include<string.h> #include<math.h> int main() { _int64 n,a; whi ...
- Unique Binary Search Trees(dp)
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- final finally finalize 区别及用法
final 1,final修饰的class,代表不可以继承扩展. 2.final的方法也是不可以重写的. 3.final修饰的变量是不可以修改的.这里所谓的不可修改对于基本类型来来,的确是不可以修改. ...