px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

dip: device independent pixels(设备独立像素,相对像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

Android支持下列所有单位:

px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75

drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分别为低、中(android默认)、高。
对应的图片大小为:36x36、48x48、72x72。

xxhdpi: 144*144
xhdpi:96*96
hdpi:72*72
mdpi:48*48
ldpi:36*36

dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如:
在320x480分辨率,像素密度为160,1dp=1px
在480x800分辨率,像素密度为240,1dp=1.5px
计算公式:1dp*像素密度/160 = 实际像素数

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。


ppi的运算方式是:

PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数

dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,

dp和px的换算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。

sp 与 px 的换算公式:sp*ppi/160 = px

总结得出:

px = dp*ppi/160
dp = px / (ppi / 160)

px = sp*ppi/160
sp = px / (ppi / 160)

dp = sp?

参考:

[无线手册-4] dp、sp、px傻傻分不清楚[完整] 
http://zhuanlan.zhihu.com/zhezhexiong/19565895

Supporting Different Screens | Android Developers
http://developer.android.com/training/basics/supporting-devices/screens.html#create-bitmaps

Iconography | Android Developers
http://developer.android.com/design/style/iconography.html

Devices and Displays | Android Developers
http://developer.android.com/design/style/devices-displays.html

Android之px 与 dp, sp换算公式相关推荐

  1. px(像素)与 dp, sp换算公式

    PPI = Pixels per inch,每英寸上的像素数,即 "像素密度" xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (baseline) ldpi: 0. ...

  2. Android的px、dp和sp

    Android的px.dp和sp px: 即像素,1px代表屏幕上一个物理的像素点:偶尔用到px的情况,是需要画1像素表格线或阴影线的时候. dp: 这个是最常用但也最难理解的尺寸单位.它与" ...

  3. Android px pt dp sp...

    dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. ...

  4. android dp工具类,Android 单位px、dp、sp转换工具类

    import android.content.Context; import android.util.TypedValue; //常用单位转换的辅助类 public DensityUtils { p ...

  5. android分辨率px跟dp,Android屏幕适配 px,dp,dpi及density的关系与深入理解

    PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...

  6. dpi px dip dp sp density 以及公式换算 整理

    屏幕尺寸: 是指屏幕对角线的长度,而且单位为英寸(1英寸=2.54厘米(约)). 屏幕分辨率: 像素总点数 width*height 屏幕像素密度(dpi):每英寸屏幕上像素的密度 dpi计算公式: ...

  7. Android的单位px,pt,dp,sp总结和获取屏幕分辨率

    px: pixels(像素). 是屏幕中可以显示的最小单位元素,px是设备密度有关的,不同设备显示效果不同.因为由于不同的设备密度不同,密度就是单位英寸的像素不同,在不同的手机上显示的大小就不同 pt ...

  8. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

  9. Android的px、dp、sp的区别

    相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结. px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小 ...

最新文章

  1. 第四节 RabbitMQ在C#端的应用-客户端连接
  2. 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素
  3. 向量距离计算 java_Milvus 向量搜索引擎开源了!
  4. java blender_[转载]将Blender模型展示于WEB
  5. webgl 基础渲染demo_游戏引擎养成《二》 引入跨平台渲染库
  6. 如何应对数据库CPU打满?最优解在这里...
  7. python在web可以开发吗_Python Web开发
  8. 用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)
  9. java多线程思维导图
  10. python问题分享_零基础入门Python常见问题分享
  11. mysql8.0.13可以用在生产环境_(13)生产环境出现大量DB死锁
  12. Struts2之拦截器篇
  13. 阿里程序员推荐的9款最佳编程字体?
  14. PLC的当前状态,电气工程师建议看完,进阶上位机编程
  15. 瑞星网络版数据库中 客户端IP地址如何查看?
  16. Jetty启动项目失败?两个命令解决address already in use问题
  17. 微信公众号网页开发-Vue项目坑点分析
  18. wince车机可以连接电脑吗_WINCE车机平台手机互联使用说明
  19. 高次osu(重邮第13届ACM程序设计大赛-网络赛)
  20. 华为云服务器协议,云服务器协议

热门文章

  1. 回顾 | 在 GitHub 上贡献到开源项目
  2. 【翻译】WPF中的数据绑定表达式
  3. 监控系统简介:使用 Prometheus 与 Grafana
  4. .NET core3.1使用cookie进行身份认证
  5. 使用.Net Core实现的一个图形验证码
  6. .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
  7. 集成平台集群任务动态分派
  8. 【译】Visual Studio 2019 中 WPF UWP 的 XAML 开发工具新特性
  9. 收起.NET程序的dll来
  10. EFCore Lazy Loading + Inheritance = 干净的数据表 (一)