UI设计和安卓屏幕知识(转)

作者&投稿:拱姚 (若有异议请与网页底部的电邮联系)

你是否被安卓手机纷繁的屏幕搞得晕头转向?你知道在什么尺寸中设计效果图经济有效吗?你知道屏幕密度是怎么回事吗?你知道dp和px的关系怎样吗?你了解屏幕差异对设计的影响吗?进来看看吧,你将从这里找到答案。

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

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

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

当安卓系统字号设为“普通”时,sp与px的尺寸换算和dp与px是一样的。比如某个文字大小在720×1280的PS画布中是24px,那么告诉工程师,这个文字大小是12sp。
5、建议在xxdhpi中作图
这几年手机硬件的发展十分迅速,屏幕分辨率1080×1920已是标配,2560x1440的2K屏也是屡见不鲜。伴随着硬件的发展,上述相关理论也应当做一些修正,在720×1080的画布中作图貌似已经不合时宜了。

大家完全可以在1080×1920(xxhdpi)分辨率的画布中作图,主要的图片素材从1080×1920的画布中提取并让程序员放置在drawable-xxhdpi中;对于小图标等线条较为精细的图片,可以制作和提取两套不同尺寸的图标,一套按照xxhdpi来做,一套按照xhdpi来做。

在1080×1920(xxhdpi)这个分辨率中,dp和px的关系为:1dp=3px,这个也比较好计算。大家作图的时候,元素尺寸以及各种间隙最好选择3的倍数,以便于转换为dp。

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中细线是2px(2dp),在xhdpi中细线是2px(1dp)。



~

安卓手机设计规范
答:侧边抽屉到屏幕右边的距离:56dp 卡片间距:8dp 分隔线上下留白:8dp 大多元素的留白距离:16dp 屏幕左右对齐基线:16dp 文字左侧对齐基线:72dp 另外注意56dp这个数字,许多尺寸可变的控件,比如对话框、菜单等,宽度都可以按56的整数倍来设计。还有非常多规范,不详细列举,遵循8dp栅格很容易找到适合...

安卓手机内屏与外屏的作用、区别。
答:失灵的是内屏,外屏只是起保护作用的,裂了不影响手机的触屏功能。内屏的作用:内屏是显示屏,有显示图像和传输触压信号的作用。外屏的作用:外屏是触摸屏,负责触摸功能,也起到保护内屏的作用。内屏与外屏的区别:1、功能不同 外屏是起保护内屏作用,内屏是传输触压信号。外屏是管触摸的,内屏是管显示...

iOS设计尺寸375*812怎么适配安卓
答:例如i0S@1x倍率的屏幕尺寸。目前一般以iOS系统主流分辨率750x1334像素进行设计,像素倍率为@2x,因为它的尺寸向上或向下适配时,界面调整幅度最小,偏差不会太大,视觉比例也不会出现太大问题。而且与Android版本720x1280像素的尺寸相近,甚至屏幕密度也是相近的,所以只需做最小的设计调整。

iOS 8与安卓系统有哪些相似点与不同点
答:我觉得最大不同的特点就是后台运行机制不同了,还有渲染机制不同。安卓是真后台,都保存在ram总运行,而ios是伪后台,关闭程序就只保留图形入口。所以iphone6RAM依然1G内存,高端安卓机已经3G了。ios8没法往桌面上放插件,so几乎所有的iphone都是一样的桌面,安卓是可以的各种各样。而且安卓是开源的,...

iPhoneXR的屏幕在手机LCD屏幕中处于什么水平?和安卓相比如何?
答:所以你可能没有一个非常清晰的概念。相比之下,以骁龙870为例,它目前在安卓阵营中表现出色。A12处理器的处理器性能可能落后10-15%,而GPU是平的,因此我认为XR性能在未来三年内不会成为问题。这款手机的屏幕是什么级别的?iPhone XR使用6.1英寸LCD屏幕PPI 326,这不是很精细。但是这个屏幕的颜色精度...

安卓系统UI设计尺寸怎么定?
答:安卓多屏幕支持的基础是它能够管理应用程序的布局和位图可绘制对象的渲染以适当的方式对当前屏幕配置的能力。该系统处理的大部分工作由布局缩放以适合屏幕尺寸/密度和缩放位图可绘制在屏幕密度正确呈现您的应用程序在每个屏幕的配置,来优化用户界面设计,带来更良好的用户体验。如何做到安卓界面适配呢?大家一定...

安卓和ios最本质的区别是什么?
答:而Android系统的优先级响应层级则是Application–Framework–Library–Kernal架构,和显示相关的图形图像处理这一部分属于Library,可以看到到第三位才是它,当触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。iOS系统优先处理Touch层级(图片来自网络)可以看到优先级的不同导致了iOS产品以及...

安卓屏幕强制上下翻转的原因和解决方法
答:安卓屏幕强制上下翻转可能是由于以下原因导致的手误触发在使用手机过程中,手指不小心按到了屏幕上的某个区域,导致屏幕发生了旋转。系统设置问题在安卓系统的设置中,有时会将屏幕旋转锁定,如果用户不小心开启了此功能,那么屏幕就会强制上下翻转。软件问题有些软件在运行时会自动旋转屏幕,如果这些软件出现了问题...

安卓app界面设计尺寸规范安卓app界面
答:怎样获取一个手机软件中的网址链接?首先我们打开需要获取链接的界面,点击选择分享,分享完成后点击链接,点击菜单,选择用浏览器打开,在浏览器中就可以看到链接了.1.打开需要获取链接的界面 2.点击选择分享 3.分享完成后点击链接 4.点击菜单,选择用浏览器打开 5.在浏览器中就可以看到链接了 ...

安卓手机屏幕上下翻转是怎么回事?
答:如果安卓屏幕出现了强制上下翻转的情况,可能是由以下几个原因造成的:1.屏幕旋转锁定开启:在某些情况下,用户可能会在手机设置中开启屏幕旋转锁定,导致屏幕无法自动旋转,只能手动切换横屏或竖屏,这时候如果误操作可能会导致屏幕上下翻转。2.陀螺仪故障:安卓系统中自带了陀螺仪传感器,通过感知手机的旋转...