打印 上一主题 下一主题

UI设计中的安卓尺寸知识,行业干货

[复制链接]
跳转到指定楼层
1#
qinqin 发表于 2016-2-27 12:59:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
文章资讯
分类:

马上注册CG织梦网,结交更多CG好友,下载更多CG素材,让你轻松学习。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不少UI设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计培训,也做过一点安卓界面布局,刚好对这块内容比较熟悉,在此,我将此部分知识重新梳理出来分享给大家!

1、了解几个概念
1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的×,安卓手机屏幕常见的分辨率有480×800720×12801080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。
2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机,就是指对角线的尺寸,5×2.54厘米/=12.7厘米。
3)密度(dpidots per inch;或PPIpixels per inch)。从英文顾名思义,就是每英寸的像素点数,数值越高当然显示越细腻。假如我们知道一部手机的分辨率是1080×1920,屏幕大小是5英寸,你能否算出此屏幕的密度呢?哈哈,中学的勾股定理派上用场啦!通过宽1080和高1920,根据勾股定理,我们得出对角线的像素数大约是2203,那么用2203除以5就是此屏幕的密度了,计算结果是440440dpi的屏幕已经相当细腻了。

2、实际密度与系统密度
尚未发现他处使用实际密度系统密度这两个词汇,暂时由我如此定义吧。
实际密度就是我们自己算出来的密度,这个密度代表了屏幕真实的细腻程度,如上述例子中的440dpi就是实际密度,说明这块屏幕每寸有440个像素。5英寸1080×1920的屏幕密度是440,而相同分辨率的4.5英寸屏幕密度是490。如此看来,屏幕密度将会出现很多数值,呈现严重的碎片化。而密度又是安卓屏幕将界面进行缩放显示的依据,那么安卓是如何适配这么多屏幕的呢?
其实,每部安卓手机屏幕都有一个初始的固定密度,这些数值是120160240320480,我们权且称为系统密度。大家发现规律没有?相隔数值之间是2倍的关系。一般情况下,240×320的屏幕是低密度120dpi,即ldpi320×480的屏幕是中密度160dpi,即mdpi480×800的屏幕是高密度240dpi,即hdpi720×1280的屏幕是超高密度320dpi,即xhdpi1080×1920的屏幕是超超高密度480dpi,即xxhdpi
安卓对界面元素进行缩放的比例依据正是系统密度,而不是实际密度。



3、一个重要的单位dp
dp也可写为dip,即density-independent pixel。你可以想象dp更类似一个物理尺寸,比如一张宽和高均为100dp的图片在320×480480×800的手机上看起来一样大。而实际上,它们的像素值并不一样。dp正是这样一个尺寸,不管这个屏幕的密度是多少,屏幕上相同dp大小的元素看起来始终差不多大。
另外,文字尺寸使用sp,即scale-independentpixel的缩写,这样,当你在系统设置里调节字号大小时,应用中的文字也会随之变大变小。


4dppx的转换
在安卓中,系统密度为160dpi的中密度手机屏幕为基准屏幕,即320×480的手机屏幕。在这个屏幕中,1dp=1px
100dp320×480mdpi160dpi)中是100px。那么100dp480×800hdpi240dpi)的手机上是多少px呢?我们知道100dp在两个手机上看起来差不多大,根据160240的比例关系,我们可以知道,在480×800中,100dp实际覆盖了150px。因此,如果你为mdpi手机提供了一张100px的图片,这张图片在hdpi手机上就会拉伸至150px,但是他们都是100dp
中密度和高密度的缩放比例似乎可以不通过160dpi240dpi计算,而通过320px480px也可以算出。但是按照宽度计算缩放比例不适用于超高密度xhdpi和超超高密度xxhdpi了。即720×12801dp是多少px呢?如果用720/320,你会得出1dp=2.25px,实际这样算出来是不对的。dppx的换算要以系统密度为准,720×1280的系统密度为320320×480的系统密度为160320/160=2,那么在720×1280中,1dp=2px。同理,在1080×1920中,1dp=3px
大家可以记住下面这个比例,dppx的换算就十分easy啦!
ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12,我们发现,相隔数字之间还是2倍的关系。计算的时候,以mdpi为基准。比如在720×1280xhdpi)中,1dp等于多少px呢?mdpi4xhdpi82倍的关系,即1dp=2px。反着计算更重要,比如你用Photoshop720×1280的画布中制作了界面效果图,两个元素的间距是20px,那要标注多少dp呢?2倍的关系,那就是10dp


当安卓系统字号设为普通时,sppx的尺寸换算和dppx是一样的。比如某个文字大小在720×1280PS画布中是24px,那么告诉工程师,这个文字大小是12sp

5、建议在xdhpi中作图
安卓手机有这么多屏幕,我到底依据哪种屏幕作图呢?没有必要为不同密度的手机都提供一套素材,大部分情况下,一套就够了。
现在手机比较高的分辨率是1080×1920,你可以选择这个尺寸作图,但是图片素材将会增大应用安装包的大小。并且尺寸越大的图片占用的内存也就越高。如果你不是设计ROM,而是做一款应用,我建议大家用PS720×1280的画布中作图。这个尺寸兼顾了美观性、经济性和计算的简单。美观性是指,以这个尺寸做出来的应用,在720×1280中显示完美,在1080×1920中看起来也比较清晰;经济性是指,这个分辨率下导出的图片尺寸适中,内存消耗不会过高,并且图片文件大小适中,安装包也不会过大;计算的简单,就是1dp=2px啊,多好计算啊!
做出来的图片,记着让界面工程师放进drawable-xhdpi的资源文件夹中。

6、屏幕的宽高差异
720×1280中作图,要考虑向下兼容不同的屏幕。通过计算我们可以知道,320×480480×800的屏幕宽度都是320dp,而720×12801080×1920的屏幕宽度都是360dp。它们之间有40dp的差距,这40dp在设计中影响还是很大的。如下图蝴蝶图片距离屏幕的左右边距在320dp宽的屏幕和360dp宽的屏幕中就不一样。



不仅宽度上有差异,高度上的差异更加明显。对于天气等工具类应用,由于界面一般是独占式的,更要考虑屏幕之间的比例差异。



如果想消除这些比例差异,可以通过添加布局文件来实现。一般情况下,布局文件放在layout文件夹中,如果要单独对360dp的屏幕进行调整,你可以单做做一个布局文件放在layout-w360dp中;不过,最好是默认针对360dp的屏幕布局(较为主流),然后对320dp的屏幕单独布局,将布局文件放到layout-w320dp中;如果你想对某个特殊的分辨率进行调整,那么你可以将布局文件放在标有分辨率的文件夹中,如layout-854×480

7、几个资源的文件夹
720×1280中做了图片,要让开发人员放到drawable-xhdpi的资源文件夹中,这样才可以显示正确。个人认为仅提供一套素材就可以了,可以测试一下应用在低端手机上运行是否流畅,如果比较卡顿,可以根据需要提供部分mdpi的图片素材,因为xhdpi中的图片运行在mdpi的手机上会比较占内存。
以应用图标为例,xhdpi中的图标大小是96px,如果要单独给mdpi提供图标,那么这个图标大小是48px,放到drawable-mdpi的资源文件夹中。各个资源文件夹中的图片尺寸同样符合ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的规律。

如果你把一个高2px的分割线素材做成了9.png图片,你想让细线在不同密度中都是2px,而不被安卓根据密度进行缩放,怎么办?你可以把这个分割线素材放到drawable-nodpi中,这个资源文件夹中的图片,将按照实际像素大小进行显示,而不会被安卓根据密度进行缩放。即在mdpi中细线是2px2dp),在xhdpi中细线是2px1dp)。

以上是对安卓屏幕的初步总结,不知道你看完后是豁然开朗,还是一头雾水?这篇文章主要为了实用起见,避开了过多深入的分析,如果你更深入学习请进一网学UI设计培训班最后补充一下,不少朋友问我安卓平板的UI设计,提到最多的是1280×800的分辨率,这个分辨率的平板一般是10.1寸的中密度屏幕,直接在PS中建立1280×800的画布,提取之后的素材让开发放到drawable-mdpi中即可。并且中密度的平板中,1dp=1px,比较好换算单位。

主流Android分辨率简报





安卓尺寸.doc

531.5 KB, 下载次数: 35, 下载积分: 梦币 -1 金钱

UI设计中的安卓尺寸知识,行业干货

2#
夜来风霜 发表于 2016-2-29 08:50:34 | 只看该作者
好东西!多谢版主!

点评

高级UI设计免费体验课,网易+新浪UI大咖实战分享 3月12号晚上8点不见不散,猛戳这里进入课堂: http://ke.qq.com/course/102581  详情 回复 发表于 2016-3-9 19:41
不客气,也希望大家都分享一些  详情 回复 发表于 2016-2-29 10:06
回复 支持 反对

使用道具 举报

3#
 楼主| qinqin 发表于 2016-2-29 10:06:56 | 只看该作者
夜来风霜 发表于 2016-2-29 08:50
好东西!多谢版主!

不客气,也希望大家都分享一些
回复 支持 反对

使用道具 举报

4#
乐情飞逸 发表于 2016-3-2 09:30:36 | 只看该作者
好东西啊,感谢楼主分享这么好的东西!

点评

高级UI设计免费体验课,网易+新浪UI大咖实战分享 3月12号晚上8点不见不散,猛戳这里进入课堂: http://ke.qq.com/course/102581  详情 回复 发表于 2016-3-9 19:41
也期待你的分享  详情 回复 发表于 2016-3-2 15:23
回复 支持 反对

使用道具 举报

5#
 楼主| qinqin 发表于 2016-3-2 15:23:26 | 只看该作者
乐情飞逸 发表于 2016-3-2 09:30
好东西啊,感谢楼主分享这么好的东西!

也期待你的分享
回复 支持 反对

使用道具 举报

6#
 楼主| qinqin 发表于 2016-3-9 19:41:24 | 只看该作者
乐情飞逸 发表于 2016-3-2 09:30
好东西啊,感谢楼主分享这么好的东西!

高级UI设计免费体验课,网易+新浪UI大咖实战分享 3月12号晚上8点不见不散,猛戳这里进入课堂:
http://ke.qq.com/course/102581
回复 支持 反对

使用道具 举报

7#
 楼主| qinqin 发表于 2016-3-9 19:41:38 | 只看该作者
夜来风霜 发表于 2016-2-29 08:50
好东西!多谢版主!

高级UI设计免费体验课,网易+新浪UI大咖实战分享 3月12号晚上8点不见不散,猛戳这里进入课堂:
http://ke.qq.com/course/102581
回复 支持 反对

使用道具 举报

8#
cahuzi2000 发表于 2016-7-21 21:38:32 | 只看该作者
太棒了,感谢楼主
回复 支持 反对

使用道具 举报

9#
 楼主| qinqin 发表于 2016-7-22 09:33:33 | 只看该作者
cahuzi2000 发表于 2016-7-21 21:38
太棒了,感谢楼主

回复 支持 反对

使用道具 举报

11#
 楼主| qinqin 发表于 2016-7-25 10:55:19 | 只看该作者
回复 支持 反对

使用道具 举报

12#
 楼主| qinqin 发表于 2016-7-25 11:01:44 | 只看该作者

恩恩
回复 支持 反对

使用道具 举报

13#
crazybirds7 发表于 2016-10-13 06:58:34 | 只看该作者
非常感谢,感谢分享
回复 支持 反对

使用道具 举报

14#
阁楼的猫 发表于 2018-4-23 18:53:09 | 只看该作者
厉害了我的楼主大大
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文
在线客服(工作时间:9:00-22:00)
18916069001
织梦网微信公众号

Copyright   ©2015-2016  CG织梦网  Powered by©Discuz!  技术支持:织梦网