px,sp,dp换算
2015-12-12 14:16
411 查看
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
相关文章推荐
- 黑马程序员——Java---类继承-覆盖-重载
- JavaScript函数-带参数的函数、带返回值的参数
- 利用org.json处理获得的json数据
- 关于Java的软引用及弱引用
- Python快速入门笔记
- Objective-C语言——实例方法与类方法之间互相调用
- hdoj--5563--Clarke and five-pointed star(简单几何)
- 随记
- RabbitMQ学习入门笔记
- linux 下svn安装配置
- pdf2html 手动编译,解决segmentation fault错误
- hdoj--5563--Clarke and five-pointed star(简单几何)
- wait() 与 sleep
- zzulioj 1827: 石锅全拌 (线段树求区间和)
- jqurey.fullpage.js解读
- git 自动补全
- ubuntu中wine的安装位置
- House Robber I & II | LeetCode
- ucenter单点登录
- android Installation error: INSTALL_FAILED_DUPLICATE_PERMISSION 解决方案