android手机和ios手机的分辨率

时间:2022-09-02 17:31:48

Android手机目前常见的分辨率

1.1 手机常见分辨率:

4:3
VGA    
640*480 (Video Graphics Array)
QVGA  320*240 (Quarter VGA)
HVGA  480*320 (Half-size VGA)
SVGA  800*600 (Super VGA)

5:3
WVGA  800*480 (Wide VGA)

16:9
FWVGA 854*480 (Full Wide VGA)
HD       
1920*1080 High Definition
QHD    
960*540
720p   
1280*720  标清
1080p  1920*1080 高清

手机:
iphone 4/4s   
960*640 (3:2)
iphone5        
1136*640
小米1            
854*480(FWVGA)
小米2            
1280*720

1.2
分辨率对应DPI
"HVGA   
mdpi"

"WVGA   hdpi "
"FWVGA hdpi "
"QHD     
hdpi "
"720P    
xhdpi"
"1080P   xxhdpi "

2 屏幕适配的注意事项

2.1
基本设置

2.1.1
AndroidManifest.xml设置

在中Menifest中添加子元素

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

1)
如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;

2)
如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;

3)
如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

2.1.2
横屏竖屏目录区分

1) drawable

a) drawable-hdpi该图片即适用于横屏,也适用于竖屏;

b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;

c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。

2) layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

2.2 多屏幕适配的4条黄金原则

1)
在layout文件中设置控件尺寸时应采用fill_parent、wrap_content、match_parent和dp;

具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义

2) 在程序的代码中不要出现具体的像素值,在dimens.xml中定义;

为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

3) 不使用AbsoluteLayout(android1.5已废弃) ,可以使用RelativeLayout替代;

4) 对不同的屏幕提供合适大小的图片。

不同大小屏幕用不同大小的图片,low:medium:high:extra-high图片大小的比例为3:4:6:8;举例来说,对于中等密度
(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra-
high为96×96。

2.3 使用9-patch PNG图片

使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch
PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

“上、左”定义可拉伸区域

“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

Android
SDK中提供了编辑9-Patch图片的工具,在tools目录下draw9patch.bat,能够立刻看到编辑后的拉伸效果,也可以直接用其他图片编辑工具编辑,但是看不到效果。

2.4 不同的layout

Android手机屏幕大小不一,有480x320, 640x360, 800x480……

怎样才能让Application自动适应不同的屏幕呢?

其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640x360、layout-800x480……所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

2.5 测试验证

一般使用AVD Manager创建多个不同大小的模拟器,如果条件具备,也可以直接用真机测试,这个比较靠谱。

3
参考资料

http://blog.csdn.net/guozh/article/details/8954994

http://my.eoe.cn/cainiao1/archive/2348.html皇马船长

ios的分辨率(即iphone手机屏幕的分辨率、主屏参数),是一个与硬件相关的参数,如iphone3以前的屏幕分辨率都是320x480,从iphone4开始为640x960 这与开发中ios SDK的版本(3.0、3.2、4.0、4.2、4.3.0、5.0、5.1)等是没什么关系的

Deployment Target  ios sdk  simulator版本

都说做iOS开发比Android省心,那么iOS是如何做到这一点的呢?我们今天就来分析一下,希望对做iOS的界面设计的同学有点帮助。

1 iOS设备的分辨率

iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类

iPhone/iPod Touch

普屏分辨率    320像素
x 480像素

Retina分辨率 640像素 x 960像素

iPad,iPad2/New iPad

普屏
       768像素
x 1024像素

Retina屏  1536像素 x 2048像素

2
 iOS设计时用的点与分辨率的关系

尽管有上面列出的4种分辨率情况,不过细心的人会发现,对于Retina屏的分辨率始终保持为普屏的2倍,这对于iOS的设计还是开发的时候提供的
莫大的方便,自然可以想到对于界面设计而言,只需要设计一套,然后进行等比例放大缩小即可。实际进行设计与开发的时候,也确实是这样,Apple为了防止
在交流过程中(尤其对于编程实现)分辨率对思维的迷惑,统一使用点(Point)对界面元素的大小进行描述,例如:

iPhone/iPod Touch

界面描述    320点 x 480点

iPhone/iPad

界面描述    768点 x 1024点

换算关系

普屏
      1点
= 1像素

Retina屏 1点 = 2像素

这样,不管我们是在为普屏还是Retina屏进行设计与开发,我们都可以清楚地,并且统一地使用点对界面元素的大小进行描述了。

3
 iOS界面图片的命名

现在我们能够用统一的语言描述两种屏幕的界面元素的大小,但是我们如何针对不同屏幕设置不同分辨率的图片素材呢?难道说开发的时候我们要在每一个图
片加载的地方进行,添加判断当前设备是否是Retina屏的语句,然后加载对应的图片吗?当然可以这样做,但是iOS有一套更简便的方法进行自动加载,即
通过规范的文件名命名。例如下面这条加载图片的语句:

[UIImage imageNamed:@"pic.png"]]

在实际运行时,如果发现当前的设备是Retina屏,会自动寻找图片"pic@2x.png"
,自动加载针对Retina屏的图片素材,是不是很方便呢?

所以,我们在制作iOS设备时,可以仿照下面这样,对图片文件进行分类,对于640x960文件夹里的图片,文件命名添加"@2x"即可。

android手机和ios手机的分辨率

4
 iOS应用常用图标的命名规范

可以参考下面两个文档:

Apple对此问题的Q&A
https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.htm

Apple的官方说明文档  
https://developer.apple.com/library/ios/#qa/qa1686/_index.html

请务必按照文档中描述的规范进行图标的命名!!

PS:一些额外的图标参考

a 图标会自动添加高亮效果,如果不需要,可以在plist中明确指定UIPrerenderedIcon的键值去掉

b 57像素的普屏的iPhone图标,图标圆角的半径为10像素

c 114像素Retina屏的iPhone图标,图标圆角的半径为20像素

d 512像素的用于iTunes/App
Store的图标,在实际显示是会被缩放到175像素进行显示(但提交是不可以提交175像素)

e 72像素的普屏iPad图标,图标圆角的半径为13像素

f 144像素Retina屏iPad图标,图标圆角的半径为26像素

g
50像素iPad的Spotlight搜索图标的最终视觉大小是48像素,原因是iOS会对图标的每个边去掉1个像素,添加阴影效果

h 100像素Retina屏的Spotlight搜索图标的最终视觉大小是96像素,原因同上,这次是每边减2个像素

来源:http://www.cnblogs.com/BigPolarBear/archive/2012/03/26/2417777.html

是为了在iphone4上显示的更清晰...

因为Phone4采用了一个叫做retina的屏幕,尺寸和老的iphone一样大,但是分辨率提高了4倍,看起高清的图来,爽太多了,根本看不到像素点.


于老的app来说,在iphone4中运行,会自动用4个像素替代原来的一个像素,这样就不用更改代码,使得老app可以自然的在iphone4中运行,
但是UI的效果会有些蒙蒙的,不是最佳的效果,要达到最佳,必须为原来的图片资源,重新设计一份640*960的高清版本,这样才能在iphone4内达
到最佳的UI效果~

所以,只用给同名的高清图加上@2x这个后缀,用UIImage的imageNamed这个函数调用图片名(未带@2x的),就会自动帮你调用合适的图片,使用起来很方便.

android手机和ios手机的分辨率的更多相关文章

  1. 安卓手机与iOS手机的区别

    安卓手机与iOS手机的区别 1.操作系统不同  安卓手机都是安卓操作系统:IOS手机都是iOS操作系统. 目前安卓最新的系统是Android 8.1:iOS版本最新的是iOS 11. 2.操作方式不同 ...

  2. H5页面中判断是安卓手机还是ios手机的方法;APP页面中嵌套的H5跳转到APP其他页面的方法。

    (一).在H5页面中,可以直接利用如下的方法来进行判断是安卓还是ios. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linu ...

  3. 安卓手机和ios手机上图片未设置宽度可能导致ios上图片贼小

    处理方法: 设置固定宽度,高度自适应

  4. 使用cordova,使html5也能像IOS,Android那样可以 调取手机的相机拍照功能

    一,我们在使用html5的技术开发手机app时,并不能像IOS,Android那样可以调取手机原生的相机功能,这是我们就要借助一些插件来时实现. 二,安装Cordoba的相机插件 1.在文件目录下,使 ...

  5. Web程序员开发App系列 - 调试Android和IOS手机代码(补图)

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  6. 敏捷个人手机应用iOS和Android公开注册

    敏捷个人手机应用iOS出炉了,现在免费公开注册,截止时间到4月20日,注册时的邀请码是7个字符: 1.admin Android下载地址:http://agileme-download.qiniudn ...

  7. Android/IOS手机使用Fiddler抓包

    对于Android和IOS开发及测试的同事来说抓包是一个很重要的事,有利于排查问题所在,快速定位问题.但长期以来一直没有一款可以快速抓包的工具,直到有了Fiddler2. 使用步骤: 1.  Fidd ...

  8. 部分Android或IOS手机拍照后照片被旋转的问题

    1.我们平时手机拍的照片,传到电脑后,使用Photoshop或者其它图片浏览工具打开时,发现图片是被转过的.可是Windows上预览却是正的.其实原因是部分Android或IOS手机拍照后,将图片角度 ...

  9. delphi 手机振动 IOS Android

    delphi 手机振动 IOS Android delphi  手机振动 IOS Android 振动 https://community.embarcadero.com/blogs/entry/ho ...

随机推荐

  1. Python学习路程day5

    冒泡排序 将一个不规则的数组按从小到大的顺序进行排序 data = [10,4,33,21,54,3,8,11,5,22,2,1,17,13,6] #第一次循环,最后一个数字不需要循环,因为最大值已经 ...

  2. JAVA:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题(5)

    一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, ...

  3. date tod = boost::gregorian::day_clock::local_day(); //当前日期

    boost 时间和日期 - 苦逼码农 - 博客频道 - CSDN.NET date tod = boost::gregorian::day_clock::local_day(); //当前日期

  4. Install odoo 11(10) on centos7

    https://www.odoo.com/documentation/11.0/setup/install.html https://nightly.odoo.com/ https://www.odo ...

  5. Leetcode 496. 下一个更大元素 I

    1.题目描述 给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字  ...

  6. JavaScript ES6格式化字符串方法

    js想要动态更新文本内容,在ES5中没有格式化字符串的方法,在ES6中是有字符串格式化的方法的. 使用左上角数字1旁边的符号定义字符串.先定义好需要拼接的字符串,在字符串内部使用 ${变量名} 进行拼 ...

  7. C#方法参数传递-同时使用ref和out关键字

    在方法参数传递中,可以同时使用ref和out关键字,但是要注意ref和out参数传递的不同. using System;class Program{static void Main(){    Pro ...

  8. winform GDI基础(一)

    1获取画布 (1)从PaintEventArgs类中获取画布 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics ...

  9. bootstrap文件上传fileupload插件

    Bootstrap FileInput中文API整理:https://blog.csdn.net/u012526194/article/details/69937741 SpringMVC + boo ...

  10. IOS Block动画

    ● + (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)dur ...