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>公司:先与支 ...
随机推荐
- POJ-2386Lake Counting,搜索题。。
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Description Due to recent rains, w ...
- PHP的资源类型
PHP的资源类型 php的资源类型 常见的有:打开文件.数据库连接.图形画布等. 常用操作:创建.使用.释放. 以文件操作为示例: //文件路径 $file_url = './data.txt'; / ...
- HDU 5700 区间交
枚举起点 二分终点 树状数组check #include<iostream> #include<cstring> #include<cmath> #include& ...
- POJ 3684 Physics Experiment
和蚂蚁问题类似. #include<cstdio> #include<cstring> #include<cmath> #include<vector> ...
- 数据库中的DDL/DML/DCL解释(转)
DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1.CREATE - ...
- Python的环境变量设置
python安装完成后,它的配置很简单,只需要配置下环境变量就可以了. 具体来讲,就是将python的安装目录加入到系统的path中即可.
- Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TAB
在linux下,用mysql的导出语句: mysqldump -hlocalhost -uroot -pPasswd table >/home/ftp/test.sql 出现了 mysqldum ...
- 浅谈 ZipArchive 类
Microsoft .NET Framework 4.5 新增了 ZipArchive 类 Microsoft Windows 8 Consumer Preview 操作系统已经内置了 Microso ...
- Redis入门教程(三)— Java中操作Redis
在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...
- javaScript定义函数的三种方式&变量的作用域
一.函数定义 方式1.普通方式定义函数 function 函数名(參数n){ 函数体 } function add(a,b){ return a+b; } 方式2.直接量定义函数 var 函数名=fu ...