我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。
在Android中支持的描述大小区域的类型有以下几种。
px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。
sp(scaled pixels—best for text size)——带比例的像素。
pt(points)——磅:1pt = 1/72英寸
in(inches)——英寸
mm(millimeters)——毫米
到底px和dip有什么区别呢?
dip != px
主要是针对不同设备而言的
在Density是160的设备上,比如用AVDManager创建的默认模拟器,dip和px是一样的
但是如果同样的代码,换到不同Density的设备上,比如换到一个Density是240的设备上,dip和px体现出来的大小就不一样了
px不管在什么样的设备上都是那样长,但是dip会根据设备变化
WQVGA屏density=120;QVGA屏density=120;HVGA屏density=160;WVGA屏density=240;
density值表示每英寸有多少个显示点,与分辨率是两个概念。
当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
换算公式为 pixs = dips * (densityDpi/160).
dips=(pixs*160)/densityDpi
如何获得设备的屏幕分辨率和屏幕密度:
如分辨率为480*800,密度为240的设备
DisplayMetrics dm =getResources().getDisplayMetrics();
dm.densityDpi=240
dm.widthPixels=480
dm.heightPixels=800
分享到:
相关推荐
android开发之dip,dp与px像素之间的转换工具,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51704703
Android中显示单位px和dip以及sp的区别
dip/px互转工具
描述android的dip dp px dp等单位及其转换关系
基于SWT写的一个px转dip工具,类似计算器的界面。呃……第一写SWT,文件有点大……
dip dp px sp区别 dip dp px sp区别 dip dp px sp区别
NULL 博文链接:https://1307111376.iteye.com/blog/1986752
简单的比较android各个单位的小程序
在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有正确设置比如说还是160,那么这个时候凡是使用dip的都会显示异常,基本都是显示过小。 dip的换算: dip(value)=...
Android的计量单位px,in,mm,pt,dp,dip,sp Android的计量单位px,in,mm,pt,dp,dip,sp
px转dip小工具,界面类似于计算器。 快捷键说明: 0~9 键:呃……这个不用说了吧。 退格键:也不说了。 回车键:转换。 ESC 键:清零。 Ctrl+c:复制。 Ctrl+v:粘贴。 F1~F4 :ldpi~xhdpi. Alt+F4:好吧,这个不是我...
Androd px转dip和sp http://blog.csdn.net/xiaoyuan511
在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法...
dip转换工具,像素和dip相互转化工具
px、dip、sp区别和使用方法;搜索了那么多,就这个看得明白。
写了一点关于dd,dip命令的观点,希望对大家有所帮助
UI——dp、dip、px、dpi、density概念及关系
DIP关于各噪声和滤波概述,里面包含PDF和Latex
本篇文章是对Android中dip,px,pt,sp的区别进行了详细的分析介绍,需要的朋友参考下