Android Dimension 尺寸

來源:互聯網
上載者:User

首先來瞭解一下幾個概念

Screen size 螢幕尺寸

    實際的物理尺寸,是根據螢幕的對角線計量的。比如說Iphone4是3.5英寸的螢幕,就是說它的螢幕對角線長。1英寸大約等於25.4毫米。後面提到的尺寸單位Points等於一英寸的1/72。

為了簡單起見,Android將所有的實際螢幕尺寸劃分為4種廣義的尺寸:small, normal, large, 和 extra large。

Screen density 螢幕密度

    在螢幕上的物理地區中的像素數量,通常簡單的以dpi(dots per inch 每英寸的點數)指代。例如,一個低解析度的螢幕在同樣的物理地區中的像素數肯定比中解析度或者高解析度的螢幕少。

為了簡單起見,Android將所有的實際螢幕密度劃分為四個廣義的密度:low, medium, high, 和 extra high。

是Android對螢幕尺寸和螢幕密度的劃分:


Resolution 解析度
    螢幕物理像素總數。比如三星Rugby III:其解析度為240×320像素。240×320像素的意思就是,手機螢幕橫向每行有240個像素點,縱向每列有320個像素點,乘起來就是320×240=76800個像素點。

Dimension尺寸
XML中定義的尺寸值。一個尺寸值就是帶有尺寸單位的數值,例如:10px、2in、5sp。以下是Android中支援的尺寸單位:
dp
    Density-independent Pixels 密度無關像素-基於螢幕的物理密度的一個抽象單位。這個尺寸單位是以160dpi(dots per inch 每英寸的點數)的螢幕為基準的,也就是說在這樣的的螢幕上,1dp大約等於1px。在更高密度的螢幕上,用來表示1dp的像素數目就會按比例(根據螢幕dpi確定的適當的因數)增加;同樣的,在一個低密度的螢幕上,用來表示1dp的像素數就會按比例減少。表示1dp的像素數會根據螢幕的密度而變化,但並不一定成正比。使用dp代替px作為尺寸單位,是一個簡單的解決方案,它使在不同密度裝置上的布局檔案中的View適當的調整大小。換句話說,它使不同裝置上的UI元素在現實世界中的尺寸保持一致性。
sp
    Scale-independent Pixels 比例無關像素-類似於dp,但是也會受使用者對字型大小的設定的影響。它被推薦用於設定字型大小,這樣字型的實際顯示效果會根據螢幕的密度和使用者對字型大小的設定來調整。
pt
    Points 點-基於螢幕的物理大小(physical size),等於一英寸的1/72。
px
    Pixels 像素-就是螢幕的實際像素。不同裝置每英寸中的像素數目可能不同,因而不同裝置的總的像素數有的多,有的少。所以不推薦使用這個尺寸單位,因為不同的裝置的實際表現不同。
mm
    Millimeters 毫米-基於螢幕的物理大小(physical size)。
in
    Inches 英寸-基於螢幕的物理大小(physical size)。

總之,sp用來設定字型大小,其他都使用dp就對了。

更多的討論詳見http://blog.csdn.net/welovesunflower/article/details/7930248


注意

一個尺寸資源是一個簡單資源,也就是說它是根據指定的name屬性的值來應用的(而不是含有它的XML檔案的名字)。因此,你可以將尺寸資源同其他的簡單資源放在同一個XML檔案的<resources> 元素下。

file location:
res/values/filename.xml
The filename is arbitrary. The  <dimen> element's  name will
be used as the resource ID.
resource reference:
In Java:  R.dimen.dimension_name
In XML:  @[package:]dimen/dimension_name
syntax:
<?xml version="1.0" encoding="utf-8"?><resources>    <dimen        name="dimension_name"        >dimension</dimen></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:

<?xml version="1.0" encoding="utf-8"?><resources>    <dimen name="textview_height">25dp</dimen>    <dimen name="textview_width">150dp</dimen>    <dimen name="ball_radius">30dp</dimen>    <dimen name="font_size">16sp</dimen></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:

<TextView    android:layout_height="@dimen/textview_height"    android:layout_width="@dimen/textview_width"    android:textSize="@dimen/font_size"/>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.