2011-07-04 80 views
0

我對Android的多屏支持感到困惑。 http://developer.android.com/guide/practices/screens_support.html我看過這篇文章,但對我而言仍然不清楚。Android多屏支持

  • 我用DP代替PX在我的佈局
  • 我把高,中,一個圖像繪製資源目錄的低版本的。

我根據這篇文章做了這個改變。但在一些密度上,儘管其中一些工作得很好,但仍然存在問題。

問題是什麼是各種Android屏幕類型的dp單位的確切寬度和高度。如果可以改變的話,px有什麼區別?

  • px是可以改變的,dp也是可以改變的嗎?有什麼不同??

如果可以更改,我應該通過Create函數上的代碼更改視圖的寬度和高度,或者爲每個屏幕牙齒創建單獨的佈局?請給一個方式來理解這個...

在此先感謝..

回答

1

px是一個固定的措施。這意味着如果小屏幕上的100像素佔用屏幕的1/2,則在大屏幕上佔用的空間會少得多。 dp =密度(獨立)像素,基於設備的密度。所以如果你在一個小屏幕上指定寬度爲50dp,它將在一個大屏幕上展開。請注意,由於設備具有不同的縱橫比,因此dp不是所有設備上佈局兼容性的保證。要構建完美的佈局,在所有設備上看起來完全一樣,您必須使用更多技術。 Linearlayout允許您分配權重。研究一下。 http://developerlife.com/tutorials/?p=312

2

PX是不可改變的。 DPS或蘸是。

要計算有多少像素中的DPS指定的對象將是使用下面的公式:

密度無關的像素相當於一個物理像素160 dpi的屏幕,這是由假定的基線密度上系統用於「中等」密度屏幕。在運行時,系統根據使用的屏幕的實際密度,根據需要透明地處理dp單位的任何縮放比例。將dp單位轉換爲屏幕像素很簡單:px = dp *(dpi/160)。例如,在240 dpi屏幕上,1 dp等於1.5個物理像素。定義應用程序的用戶界面時,應始終使用dp單位,以確保在不同密度的屏幕上正確顯示您的用戶界面。