分辨率(PX)

分辨率就是手机屏幕的像素点数。一般为屏幕的“宽×高”,例如分辨率有720×1280的手机设备,表示此屏幕在宽度方向有720个像素点,在高度方向有1280个像素点。

屏幕尺寸(英寸inch)

按屏幕对角测量的实际物理尺寸。为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大,以英寸(inch)为单位。例如有个5寸的手机设备,是指对角线的尺寸,5寸×2.54厘米/寸=12.7厘米。

屏幕密度(DPI)

就是每英寸的像素点数,数值越高当然显示越清晰,通常 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。

密度无关像素 (dp)

在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。
密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。

六种通用的密度:ldpi(低)~120dpimdpi(中)~160dpihdpi(高)~240dpixhdpi(超高)~320dpixxhdpi(超超高)~480dpixxxhdpi(超超超高)~640dpi

密度独立性

大多数情况下,确保应用中的屏幕独立性很简单,只需以适当的密度独立像素(dp 单位)或 "wrap_content" 指定所有 布局尺寸值。系统然后根据适用于当前屏幕密度的缩放比例适当地缩放位图可绘制对象,以 适当的大小显示。

dp、dpi与px的换算

 

 

181541064557_.pic.jpg

如上表所示,现在我们在mdpi下设计了一个48x48的应用图标,那么在ldip下大小缩小0.75倍为36x36,在hdip下放大1.5倍为72x72,在xhdpi下放大2倍为96x96,在xxhdpi下放大3倍为144x144,在xxxhdpi下放大4倍为192x192.

android对于不同dpi设备提供了5个目录存放图片,使开发人员根据实际需要对图片适配。一般情况需要UI根据一种DPI密度、或分辨率的设备设计UI,根据不同dpi的比例出图,一般需要xhdpi、xxhdpi两套图,即2x、3x图。
计算相关公式:
px = dpValue * density + 0.5f;
dp = pxValue / density + 0.5f;



作者:沉默的菋道
链接:https://www.jianshu.com/p/63aeb5ba85aa
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

更多相关文章

  1. Android的px,dpi,dip三者的关系详解
  2. android实现屏幕滑动(类似主屏滑动第一屏---->到第2屏)
  3. Android像素单位dp、sp、px、pt的区别和比较
  4. [置顶] 新修改ADB,支持Android(安卓)4.2 系统 ,全部中文命令,手机屏
  5. Android(安卓)UI总结 Android(安卓)和H5 字体大小适配
  6. 探究Android的多分辨率支持以及各种类型图标尺寸大小
  7. 【凯子哥带你夯实应用层】Android的Google官方设计指南(上)
  8. 牛逼的Android(安卓)UI--第18章 与用户交互相关的设计模式 (中)
  9. Android简易实战教程--第二十八话《加载大图片》

随机推荐

  1. SOAP in Android
  2. android异常 More than one file was fou
  3. Android: 打印Bundle内容
  4. 一分钟解决Android(安卓)安卓 API版本兼
  5. android 根据res文件夹下(如res/raw)文件
  6. ReactNative调用原生封装的代码和控件
  7. Android(安卓)4.0 中的Camera
  8. Android(安卓)5种方式存储数据:
  9. android时序图 以及UML中时序图、流程图
  10. Android(安卓)Studio 低版本Gradle升级到