Android UI教程 - Android布局

2018-01-09 14:51 更新

Android UI教程 - Android布局


測量單位

當(dāng)在Android UI上指定元素的大小時(shí),您應(yīng)該知道以下測量單位:

dp是密度獨(dú)立的像素。 1 dp等于160dpi上的一個(gè)像素        屏幕。         這是指定時(shí)的推薦測量單位        視圖的維度。 160dpi屏幕是基線密度        假設(shè)由Android。 在引用a時(shí),可以指定“dp"或“dip"        密度無關(guān)像素。

sp是與scale無關(guān)的像素。這類似于dp,建議用于指定字體大小。

點(diǎn) - 點(diǎn)。 基于物理屏幕大小,點(diǎn)被定義為1/72英寸。

px - 像素。 對(duì)應(yīng)于屏幕上的實(shí)際像素。 使用本機(jī)不是        推薦,因?yàn)槟腢I可能無法正確顯示在不同的設(shè)備上        屏幕分辨率。



將Dp轉(zhuǎn)換為Px

將dp轉(zhuǎn)換為px(像素)的公式如下:

pixels = dp * (dpi / 160)

其中dpi為120,160,240或320。

如果在235 dpi屏幕上的按鈕,其實(shí)際寬度為

160 * (240/160) = 240 px.

當(dāng)在作為160dpi設(shè)備的180dpi模擬器上運(yùn)行時(shí),其實(shí)際像素現(xiàn)在是160 *(160/160)= 160像素。

在這種情況下,一個(gè)dp等于一個(gè)px。

您可以使用View對(duì)象的getWidth()方法獲取其寬度(以像素為單位):

public void onClick(View view) {
    Toast.makeText (this,String.valueOf(view.getWidth()),Toast.LENGTH_LONG).show();
}

屏幕密度

Android定義和識(shí)別四個(gè)屏幕密度:

  • Low density (ldpi) - 120 dpi
  • Medium density (mdpi) - 160 dpi
  • High density (hdpi) - 240 dpi
  • Extra High density (xhdpi) - 320 dpi

Nexus S的屏幕有4英寸屏幕對(duì)角線,屏幕寬度為2.04英寸。

其分辨率為480(寬)800(高)像素。 與480像素蔓延寬度為2.04英寸,結(jié)果是像素密度為約235每英寸點(diǎn)數(shù)(dpi)。

Nexus S被認(rèn)為是hdpi設(shè)備,因?yàn)槠湎袼孛芏茸罱咏?40dpi。

使用dp單元確保您的視圖總是以正確的比例顯示,而不管屏幕密度。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)