引用自Google API Guides
 
Dimension
 
A dimension value defined in XML. A dimension is specified with a number 
followed by a unit of measure. For example: 10px, 2in, 5sp. The following units 
of measure are supported by Android: 
 
  - dp
- Density-independent Pixels - An abstract unit that is based on the 
  physical density of the screen. These units are relative to a 160 dpi (dots 
  per inch) screen, on which 1dp is roughly equal to 1px. When running on a 
  higher density screen, the number of pixels used to draw 1dp is scaled up by a 
  factor appropriate for the screen‘s dpi. Likewise, when on a lower density 
  screen, the number of pixels used for 1dp is scaled down. The ratio of 
  dp-to-pixel will change with the screen density, but not necessarily in direct 
  proportion. Using dp units (instead of px units) is a simple solution to 
  making the view dimensions in your layout resize properly for different screen 
  densities. In other words, it provides consistency for the real-world sizes of 
  your UI elements across different devices.  
  
- sp
- Scale-independent Pixels - This is like the dp unit, but it is also scaled 
  by the user‘s font size preference. It is recommend you use this unit when 
  specifying font sizes, so they will be adjusted for both the screen density 
  and the user‘s preference.  
  
- pt
- Points - 1/72 of an inch based on the physical size of the screen.  
  
- px
- Pixels - Corresponds to actual pixels on the screen. This unit of measure 
  is not recommended because the actual representation can vary across devices; 
  each devices may have a different number of pixels per inch and may have more 
  or fewer total pixels available on the screen.  
  
- mm
- Millimeters - Based on the physical size of the screen.  
  
- in
- Inches - Based on the physical size of the screen.
Note: A dimension is a simple resource that is referenced 
using the value provided in the name attribute (not the name of the 
XML file). As such, you can combine dimension resources with other simple 
resources in the one XML file, under one <resources> element. 
用法
 
 
  - FILE LOCATION:
  
- res/values/filename.xml
 The filename 
  is arbitrary. The- <dimen>element‘s- namewill 
  be used as the resource ID.
- RESOURCE REFERENCE:
  
- In Java: R.dimen.dimension_name
 In XML:@[package:]dimen/dimension_name
- SYNTAX:
  
-  
   
     1: <?xml version="1.0" encoding="utf-8"?>    2: <resources>        3:     <dimen name="dimension_name">dimension</dimen>    4: </resources> 
 
- ELEMENTS:
  
- 
  
    - <resources>
- Required. This must be the root node. 
    No attributes. 
- <dimen>
- A dimension, represented by a float, followed by a unit of measurement 
    (dp, sp, pt, px, mm, in), as described above. 
    attributes:
     
      - name
- String. A name for the dimension. This will be used as the 
      resource ID.
 
 
- EXAMPLE:
  
- XML file saved at res/values/dimens.xml:
     1: <?xml version="1.0" encoding="utf-8"?>    2: <resources>        3:     <dimen name="textview_height">25dp</dimen>        4:     <dimen name="textview_width">150dp</dimen>        5:     <dimen name="ball_radius">30dp</dimen>        6:     <dimen name="font_size">16sp</dimen>    7: </resources> 
 This application code retrieves a dimension: Resources res = getResources();
 float fontSize = res.getDimension(R.dimen.font_size);
 This layout XML applies dimensions to attributes:
   
     1: <TextView        2:     android:layout_height="@dimen/textview_height"        3:     android:layout_width="@dimen/textview_width"        4:     android:textSize="@dimen/font_size"/> 
 
 
常见的密度比值:
QVGA:240*320 的密度比值是: 0.75
HVGA:320*480 的密度比值是: 1.0
WVGA:480*800 的密度比值是: 1.5
计算方式
float density = getResources().getDisplayMetrics().density;
1.0 * 160dp = 160px HVGA
0.75 * 160dp = 120px QVGA
1.5 * 160dp = 240px WVGA
2.1……Android中的单位简介
原文:http://www.cnblogs.com/ShawnWithSmallEyes/p/3561771.html