安卓手机的屏幕规格很多。app开发者在设计User Interface的时候,要怎么处理,才能适应不同屏幕大小?

在app store下载应用时经常看到:此App已针对iPhone 5 进行优化。
可是Android手机屏幕规格这么多,相差这么远。难道要针对每个尺寸都进行一次优化吗?(题主非专业人士,看到2014年Android碎片化报告里面的屏幕碎片化,好奇想了解一下,求大神回复)

-----------2 个回答

首先,不用绝对单位PX
绝对单位PX在不同分辨率下的表现大相径庭,无法适配各种屏幕。

要用相对单位DP来定义元素的尺寸
dp 这个单位是安卓发明的么?为什么 px=dp*(dpi/160)?

DP的大小,和设备的声明DPI有直接关系。
而设备的DPI如果和屏幕的物理PPI越接近,效果就越理想化。

DPI有很多档次,120 dpi、160 dpi、240 dpi、320 dpi、480dpi、640dpi
越高代表屏幕点密度越高,现在有很多手机系统声明的dpi已经达到480级别。

---------------------------------------------------------------------------------------------

题主问 “要怎么处理,才能适应不同屏幕大小?”
基本上可以简单解释为:
通过设备dpi的声明,和设计上dp的标注,来判断某个元素应该渲染成多大(像素px)的面积,来适配不同屏幕大小和像素密度。

密度
本来就是一个物理面积和像素数的关系,所以这个密度值,可以为不同尺寸不同分辨率的设备提供一个界面布局的参考。

前提是设备声明的dpi是接近自身的硬件ppi的。

明显的例子就是魅族,比如MX3,屏幕物理ppi应该是接近400,所以他们声明dpi也是400(非安卓标准的480)
这样的结果就是MX3上同样的界面(比如Play store),和物理尺寸分辨率都非常接近的其他手机相比(声明dpi480的那些),看起来更小,可以展示更多的内容,充分利用了屏幕,并且在用户使用中会感觉更精致。

原文地址:https://www.cnblogs.com/mochaMM/p/5148785.html