多种屏幕尺寸下屏幕适配方法

  

  自从iPhone 6及iPhone 6 Plus出现之后,iPhone需要适配的屏幕尺寸就达到了四种之多,屏幕适配就成为了开发者们最需考虑的问题。

  

  iPhone4、iPhone4s,分辨率960 * 640 ,长宽比1.5

  iPhone5、iPhone5s,分辨率1136 * 640 ,长宽比1.775

  iPhone6,分辨率1334 * 750 ,长宽比1.778

  iPhone6+,分辨率1920 * 1080,长宽比1.777

  由此可见,只有iPhone4和iPhone4s和iPhone5及以上设备的长宽比不一样,可以粗略认为iPhone5、5s、6、6+的长宽比是一样的,可以等比例缩放,虽然有细微的差别,基本上看不出来。

  基于此发现了三种适配方案。

  一、使用老版XCode编辑出来的工程

    相信很多人都有发现,在iPhone 6及iPhone 6 Plus出现后,之前只适配了320 * 480和320 * 568的App照样可以略完美的运行在6及6 Plus上,除了图片资源被同比例的放大了。

    然后我拿着新老两个工程对工程中的各项设置逐一对比,期望找出不同点,不过并没有发现,所以如果使用这种方法,只能使用老版XCode编辑出来的工程,删掉不需要的代码,然后使用。

  二、使用一个自定义的CGSizeMake()方法  

// 屏幕宽高

#define SCREEN_WIDTH    [[UIScreen mainScreen] bounds].size.width

#define SCREEN_HEIGHT    [[UIScreen mainScreen] bounds].size.height

#define AUTO_SIZE_SCALE_X   SCREEN_WIDTH / 320.0f

#define AUTO_SIZE_SCALE_Y   SCREEN_HEIGHT / 568.0f

// 使用新的坐标法处理4种尺寸的适配问题

CG_INLINE CGRect

CGRectMakeNew(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

{

float autoSizeScaleX = 1.0f;

float autoSizeScaleY = 1.0f;

if(SCREEN_HEIGHT > 480){

autoSizeScaleX = AUTO_SIZE_SCALE_X;

autoSizeScaleY = AUTO_SIZE_SCALE_Y;

}

CGRect rect;

rect.origin.x = x * autoSizeScaleX;

rect.origin.y = y * autoSizeScaleY;

rect.size.width = width * autoSizeScaleX;

rect.size.height = height * autoSizeScaleY;

return rect;

}

  三、使用自动布局

    自动布局是最完美的解决方案,只是自动布局需要添加各种约束条件,用起来比较麻烦,附上一份AutoLayout的文档。

    http://www.cocoachina.com/ios/20141217/10669.html    

时间: 2024-10-24 04:56:01

多种屏幕尺寸下屏幕适配方法的相关文章

android多分辨率多屏幕密度下UI适配方案

相关概念 分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280 屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点 px:长度单位,以具体像素为单位 dp:长度单位,与具体屏幕密度无关,显示的时候根据具体平台屏幕密度的不同最终转换为相应的像素长度,具体转换规则是: 1dp = (目标屏幕密度/标准密度)*px,标准密度为160dpi,例如,1dp长

New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题

New UI-获取手机屏幕尺寸与常用分辨率,屏幕适配,横竖屏问题 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http:/

Supporting Multiple Screens(支持Android各种屏幕尺寸)

原文链接 本文翻译自Supporting Multiple Screens. 目前我这篇翻译应该是最全,最完整的官方文档翻译,转载我的翻译请联系本人,标明出处. Supporting Multiple Screens Android runs on a variety of devices that offer different screen sizes and densities. For applications, the Android system provides a consist

支持各种屏幕尺寸

支持各种屏幕尺寸 上一课下一课 本教程将指导您 使用"wrap_content"和"match_parent" 使用相对布局 使用尺寸限定符 使用最小宽度限定符 使用布局别名 使用屏幕方向限定符 使用自动拉伸位图 您还应参阅 支持多种屏幕 试试看 下载示例应用 NewsReader.zip 此教程将向您介绍如何通过以下方法支持各种尺寸的屏幕: 确保系统可以适当地调整您布局的尺寸以便适应屏幕 根据屏幕配置提供合适的用户界面布局 确保正确的布局应用到了正确的屏幕上 提供

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

一.基本概念 dip        : Density independent pixels ,设备无关像素. dp        :就是dip px        : 像素 dpi       :dots per inch , 直接来说就是一英寸多少个像素点.常见取值 120,160,240.我一般称作像素密度,简称密度 density : 直接翻译的话貌似叫 密度.常见取值 1.5 , 1.0 .和标准dpi的比例(160px/inc) 分辨率   : 横纵2个方向的像素点的数量,常见取值

Android dpi、dip、px、分辨率、屏幕尺寸、density 关系以及换算

一.介绍 dip:设备独立像素(Device independent pixel),一个基于density的抽象单位: dp:在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字: px:像素(Pixel),1px代表屏幕上一个物理的像素点,px单位不被建议使用,因为同样1px,在不同手机上显示的实际大小可能不同,偶尔用到px的情况是需要画1像素表格线或画一条细的分隔线的时候,用其他单位如dp会显得模糊: sp:与缩放无关的抽象像素(Scale-independen

New UI-屏幕分辨率,屏幕尺寸,像素,dpi概念解析

屏幕分辨率,屏幕尺寸,像素,dpi概念解析            --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http:/

屏幕尺寸相关概念

* 屏幕尺寸: 屏幕对角线的长度    * 分辨率 : 横纵2个方向的像素点的数量,常见取值 480X800 ,320X480    * dpi : dots per inch,像素密度,即每英寸有多少个像素点.    * 计算方法:屏幕分辨率/屏幕物理尺寸        * 假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则像素密度为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度.横向和纵向的这个值都是

如何获取屏幕尺寸

可以通过以下代码轻松获取屏幕尺寸 //获取屏幕尺寸 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int mScreenWidth = metric.widthPixels; int mScreenHeight = metric.heightPixels;