轉自android官方文檔,無法提供連結,因為android官網的連結被和諧了。我在日文版google android中的cache裡面翻到的如下內容。趕緊儲存了下來。
1. You can create common dimensions to use for various screen elements by defining dimension values in XML. A dimension resource is a number followed by a unit of measurement . For example: 10px, 2in, 5sp. Here are the units of measurement supported by Android :
(1) px --> Pixels - corresponds to actual pixels on the screen .
(2) in --> Inches - based on the physical size of the screen .
(3) mm --> Millimeters - based on the physical size of the screen .
(4) pt --> Points - 1/72 of an inch based on the physical size of the screen .
(5) 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 screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion .Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".
(6) 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 user's preference .
2. Dimension values are not normally used as raw resources, but rather as attribute values in XML files. You can, however, create plain resources containing this data type.
Source file format: XML file requiring a declaration, and a root element containing one or more tags.
Resource source file location : res/values/dimens.xml (File name is arbitrary; standard practice is to put all dimensions in one file devoted to dimensions.)
Compiled resource datatype: Resource pointer to a dimension .
Resource reference name:
Java: R.dimen.some_name
XML: @[package :]dimen/some_name (where some_name is the name of a specific element)
Syntax
Xml代碼
<dimen name=dimen_name>dimen_value</dimen>
<dimen>A valid dimension value. name - The name used in referring to this dimension .
Example XML Declaration
The following code declares several dimension values.
<dimen name="double_density">2dp</dimen>
<dimen name="sixteen_sp">16sp</dimen>
</resources>
Example Java code:
Java代碼
float dimen = Resources.getDimen(R.dimen.one_pixel);
Example XML code:
Xml代碼
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/sixteen_sp"/>
3. 簡單總結
dip: device independent pixels(裝置獨立像素). 不同裝置有不同的顯示效果。
px: pixels(像素). 不同裝置顯示效果相同。
sp: scaled pixels(放大像素). 主要用於字型顯示best for textsize。
pt/in/mm就不解釋了,沒什麼好解釋的。