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);

  }


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章