本文整理自网络,侵删。
看到有很多网友不太理解dp、sp和px的区别:现在这里介绍一下dp和sp。dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。
在Android的layout文件中layout_width或layout_height有时候可能会指定具体的单位,比如有时候为px、dip或者sp等等。下面android123把常见的单位做下简单的介绍,比如说
px (pixels)像素 -- 一般我们HVGA代表320x480像素,这个用的比较多。
dip或dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。
sp (scaled pixels ― best for text size)放大像素-- 主要处理字体的大小。
界面长度,android 建议使用dp
dp 是一个抽象单位,android 把屏幕宽度统一设定为320dp。这样只要是长度单位用dp时,相对于屏幕的比例是一致的
dp 和px 的转化关系
屏幕实际分辨率为240px*400px时,density=120
屏幕实际分辨率为320px*480px,density=160
屏幕实际分辨率为480px*800px,density=240
转化公式:Px = dips * (density / 160)
如: 320*480 时,1px=1dp
下面的几个是不常用的,大家也知道这里不再过多的赘述。
in (inches)英寸
mm (millimeters)毫米
pt (points)点
android:numColumns="auto_fit" ,GridView的列数设置为自动
android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth",缩放与列宽大小同步
android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
android:horizontalSpacing="10dp",两列之间的边距。
相关阅读 >>
Delphi fdconnection1 获取数据库总记录数
Delphi 如何在toolbar中的toolbutton上显示文字
Delphi xe 利用fmx控件的makescreenshot过程实现wait效果
更多相关阅读请进入《Delphi》频道 >>