Android上dip、dp、px、sp等单位说明

    Androidlayout文件中有时候可能会指定具体的单位,比如有时候为pxdip或者sp等。他们的区别如下:

1. px (pixels)像素:这个大家用得比较多,一般我们HVGA代表320x480像素。

2. dipdp (device independent pixels)设备独立像素:这个和设备硬件有关,一般我们为了支持WVGAHVGAQVGA cwj推荐使用这个,不依赖像素。android上开发的程序将会在不同分辨率的手机上运行。为了让程序外观不至于相差太大,所以引入了dip的概念。比如定义一个矩形10 x 10dip.在分辨率为160dpi的屏上,比如G1,正好是10 x 10像素。而在240 dpi的屏,则是15 x 15像素.换算公式为pixs = dips * (density/160). density就是屏的分辨率

3. sp (scaled pixels — best for text size)放大像素:主要处理字体的大小。

下面的不经常用到:

4. in (inches)英寸

5. mm (millimeters)毫米

6. 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",两列之间的边距。

dp与px转换的方法

public static int dip2px(Context context, float dipValue){

  final float scale
= context.getResources().getDisplayMetrics().density;

  return (
int)(dipValue * scale +0.5f);

  }

  
public static int px2dip(Context context, float pxValue){

  final float scale
= context.getResource().getDisplayMetrics().density;

  return (
int)(pxValue / scale +0.5f);

  }


 

你可能感兴趣的:(android,单位)