文档章节

px 与 dp 与 sp 换算

yaly
 yaly
发布于 2015/02/27 09:32
字数 347
阅读 19
收藏 0

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? 


本文转载自:http://www.cnblogs.com/bluestorm/p/3640786.html

共有 人打赏支持
yaly
粉丝 3
博文 97
码字总数 48319
作品 0
海淀
Android工程师
扒一扒那些px、pt、ppi、dpi、dp、sp之间的关系

原文出处:Snow 做了几个移动端的项目之后,深感移动端尺寸换算的必要性,在此做个总结。 先介绍下各自的定义: px:pixel,像素,电子屏幕上组成一幅图画或照片的最基本单元 pt: point,点,...

Snow
2015/09/29
0
0
什么是dp,dip,sp和px及他们之间的的关系?《二》

前言 首先要说的是,Android的碎片化的问题非常严重。因为 Android厂商非常多,设备非常多,产生了各种各样的分辨率。 为了解决碎片化的问题,Android 开发文档中定义了 dp,sp 等新的单位 ...

goodgleCoder
01/04
0
0
雪梦尺寸换算器

雪梦尺寸换算器是一款方便Android开发者的单位换算小工具。 在dp、dip、sp、pt、px、mm、in之间相互换算(和设备相关) 在ldpi、mdpi、tvdpi、hdpi、xhdpi、xxhdpi、xxxhdpi之间相互换算 要求...

snowdream
2014/11/05
471
1
android计量单位--dip、px、sp之间区别与联系

在页面布局的时候,很多时候需要指定控件宽、高、距离其他控件及边界的距离,字体大小等,都需要计量单位,它们的具体含义以及相互之间如何切换呢?(资源均来自网上整理所得) 1. dip: devi...

迷途d书童
2012/03/30
443
0
源码:Android Dimen 探究

文章摘要: 1、getDimension、getDimensionPixelOffset等异同点。 2、Dimen 六种(PX、DP、SP、PT、IN、MM)类型运算关系。 一、综述: 本文简要分析:Android Resource getDimension()、get...

Android那些事儿
2017/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【mpvue】三

使用了快1个月,陆续整理发现的坑 1、pageA-pageB-pageA-pageC 如果以这种顺序,大概理解成,列表进详情B, 返回列表进入详情C,那么进入详情C的时候,会因为缓存,先展现详情B的内容。解决方...

登天的感觉
20分钟前
1
0
在EXCEL指定SHEET页,指定文字位置,插入批注

Java操作EXCEL文件,利用POI,在EXCEL指定SHEET页中指定文字位置处插入批注 package excel; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.hssf......

zhaochaochao
21分钟前
1
0
一些网站。

UI schema,可以用json定义UI表单:https://jsonforms.io/examples/array

王坤charlie
28分钟前
1
0
百万连接,百亿吞吐量服务的JVM性能调优实战

转载占小狼博客 应用:shark-新美大移动端网络优化(每日接受移动端请求约150亿) 应用特点 : qps比较高,新生代增长飞快 用户的连接需要维持一段时间 单机需要维持海量连接,几十万的级别 以...

BakerZhu
31分钟前
1
0
iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码

iOS精选源码 LeeTagView 标签选择控件 为您的用户显示界面添加美观的加载视图 Swift4: 可拖动头像,增加物理属性 Swift版抽屉效果,自定义转场动画管理器 Swift 仿写喜马拉雅FM 可能是最好用...

sunnyaigd
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部