Android中px, ppi, dpi, dp, dip, sp概念解析
来源:互联网 发布:tina软件是否免费 编辑:程序博客网 时间:2024/05/16 10:02
前几天在面试Android开发实习生的过程中,我感触很深地就是好多基础概念掌握地不牢靠,明明在项目中用过的却在面试中不能正确回答出细节来,所以我决定在接下来的学习过程中,每遇到一个知识点,就完整地梳理一遍,写到博客里,一方面巩固自己的记忆,另一方面也能帮助众多的Android初学者,一举两得,我一定要坚持~
言归正传,首先来看看这几个概念:
- px : pixels(像素)
- ppi : pixels per inch(像素密度,所表示的是每英寸所拥有的像素数量)
- dpi : dots per inch(每英寸的点数)
- dp/dip : device independent pixels(设备独立像素)
- sp : scaled pixels(放大像素)
px(像素)
一个像素通常被视为图像的最小的完整采样。通常所说的分辨率比如1280*720,指的就是可以显示1280*720个像素。
ppi(像素密度)
屏幕分辨率大不一定意味着显示更清晰,因为手机尺寸不知道,而屏幕的ppi越高,表示屏幕的像素密度越高,这样屏幕内容看起来就更加细腻,看起来也就更加真实。ppi的计算公式为:
计算一下小米手机2屏幕的PPI:4.3英寸、分辨率1280*720
PPI=√(1280^2+720^2)/4.3=341.5359……≈342
dpi(屏幕密度)
屏幕密度与dpi密切相关,dpi是每英寸的点数。也就是说,密度越大,每英寸内容纳的点数就越多。
android.util包下有个DisplayMetrics类可以获得密度相关的信息。最重要的是densityDpi这个成员,它有如下几个常用值:
DENSITY_LOW = 120 DENSITY_MEDIUM = 160 //默认值 DENSITY_TV = 213 //TV专用 DENSITY_HIGH = 240 DENSITY_XHIGH = 320 DENSITY_400 = 400 DENSITY_XXHIGH = 480 DENSITY_XXXHIGH = 640
那dpi和ppi在Android手机中是什么关系呢?具体可以参考PPI vs. DPI: what’s the difference?
dp(设备独立像素)
这个和设备硬件有关,不同设备有不同的显示效果。在做项目时,为了适配市场上繁多的手机分辨率,建议使用dp。
不同分辨率下如何适配
首先介绍一下市面上常见的手机屏幕参数:
以上只是市场上主流的手机屏幕参数,而根据OpenSignal的调查,2014年市面上有18796种不同的Android设备,到现在这个数字肯定又增长了很多,面对如此碎片化的局面,作为开发者应该怎么适配不同的屏幕呢?
其实,Android考虑到了这一点,不是提供了dp和sp这两种虚拟像素单位了吗。dp的大小不是一个物理值,而是由操作系统根据屏幕大小和密度动态渲染出来的。
px和dp之间的换算关系很简单:
px=dp*(dpi/160)
可以看到用dp来定义大小就不用担心不同屏幕下显示不一致的问题了,因为不同屏幕小dp对应的px是不同的,可以做到适配不同的屏幕。
sp(放大像素)
SP 全称是 Scale-independent Pixels,用于字体大小,其概念与DP是一致的,也是为了保持设备无关。因为Android用户可以根据喜好来调整字体大小,所以要使用sp来表示字体大小。
总结:
这些概念是很容易混淆的,我们在做项目时最常用的还是dp和sp,但是搞清楚它们与px,dpi,ppi的关系还是很有必要的,面试中也会被问到的哦~
- Android中px, ppi, dpi, dp, dip, sp概念解析
- Android中dp、dip、dpi、ppi、px、sp的区别
- android UI中常用的几个概念:dp,dip,dpi,sp,px,pt,ppi及它们之间的关联
- 关于px,em,pt,ppi,dpi,dp,dip和sp
- 科普dip,dp,sp,dpi,ppi,px,Density
- Android 关于dp dip sp px dpi density解析
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- android 中 dp(dip),dpi,px,sp概念以及联系
- android 单位:px,dip(dp),sp,dpi
- android开发中px,dip,dp,sp,dpi的区别,以及dp与px换算公式.
- dp, dpi, ppi, sp, px 详细介绍
- dpi ppi px pt dp sp区别
- dp、sp、px、dpi、ppi、pt详解
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- [POJ 1284] Primitive Roots (数论,原根)
- HDOJ 1358 Period
- sendto和recvfrom详细解释
- ForkJoin 源码分析之ForkJoinPool的执行
- Ubuntu15.10使用mysql 5.6.28中文乱码问题解决
- Android中px, ppi, dpi, dp, dip, sp概念解析
- [Unity热更新]tolua# & LuaFramework(五):.proto转换为.lua
- CentOS 7 安装gogs git代码服务器
- Android 监听器
- appstore上架一般操作流程
- javascript 折半查找/二分查找
- 杭电ACM省赛集训队选拔赛之热身赛-How Many Tables,并查集模板题~~
- UVA 10325 The Lottery (组合数学,容斥原理,二进制枚举)
- android 常用工具