px = (density/160)dp
density一般为3个常用固定值240/160/120
分别对应WVGA/HVGA/QVGA
不知道知己做的分辨率对应的density是多少可以点击AVD Manager里新建一个模拟器或者选择已有的模拟器点details就可以看到了(1.6以上包括1.6才可以查)
补充:dp跟dip是一样的,但px跟dp(dip)绝对不一样,唯一的情况只有在HVGA分辨率下才是一样,因为HVGA分辨率对应density为160,与除数一样,所以做的时候才会没感觉到差别
px :是屏幕的像素点
in :英寸
mm :毫米
pt :磅,1/72 英寸
dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px
dip :等同于dp
sp :同dp相似,但还会根据用户的字体大小偏好来缩放。
建议使用sp作为文本的单位,其它用dip
针对dip和px 的关系,做以下概述:
QVGA屏density=120; QVGA(240*320)
HVGA屏density=160; HVGA(320*480)
WVGA屏density=240; WVGA(480*800)
WQVGA屏density=120 WQVGA(240*400)
density值表示每英寸有多少个显示点,与分辨率是两个概念。
不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例
density=120时
屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip
density=160时
屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip
density=240时
屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip
apk的资源包中
当屏幕density=240时,使用hdpi 标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
dp与px换算公式:
pixs =dips * (densityDpi/160).
dips=(pixs*160)/densityDpi
dp与px转换的方法:
publicstaticintdip2px(Context context, float dipValue){
final float scale=context.getResources().getDisplayMetrics().density;
return (int)(dipValue*scale+0.5f);
}
publicstaticintpx2dip(Context context, float pxValue){
final float scale=context.getResource().getDisplayMetrics().density;
return (int)(pxValue/scale+0.5f);
}
分享到:
相关推荐
基于SWT写的一个px转dip工具,类似计算器的界面。呃……第一写SWT,文件有点大……
javascript px单位大小转换为等同大小的 mm单位大小
Androd px转dip和sp http://blog.csdn.net/xiaoyuan511
px转dip小工具,界面类似于计算器。 快捷键说明: 0~9 键:呃……这个不用说了吧。 退格键:也不说了。 回车键:转换。 ESC 键:清零。 Ctrl+c:复制。 Ctrl+v:粘贴。 F1~F4 :ldpi~xhdpi. Alt+F4:好吧,这个不是我...
px、dip、sp区别和使用方法;搜索了那么多,就这个看得明白。
dip/px互转工具
javascript中单位的转换,不改变原始大小,例如:mm单位转换为px单位,可自行扩展
Android中显示单位px和dip以及sp的区别
android开发之dip,dp与px像素之间的转换工具,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51704703
简单的比较android各个单位的小程序
dip dp px sp区别 dip dp px sp区别 dip dp px sp区别
懒人推动进步,简化px,em,rem的换算
移动端网页字号pt px em换算对照表.pdf移动端网页字号pt px em换算对照表.pdf移动端网页字号pt px em换算对照表.pdf
这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有...
描述android的dip dp px dp等单位及其转换关系
em指字体高,任意浏览器的默认字体高都是16px,所以未经调整的浏览器都符合: 1em=16px,详细了解请参考本
px2vw 一个 px 单位转成 vw 单位的 VSCode 插件
Android dp和px/sp等单位相互转换
你还在为开发Android的像素而烦恼吗?赶快下载行动起来吧!里面说的非常详细!!
UI——dp、dip、px、dpi、density概念及关系