2015-04-28 28 views
3

我按照一組規範設計佈局。我基本上需要給佈局和Android設備之間留出一些空間。以下圖片僅供參考將px值分配給所有Android設備的佈局

enter image description here

我使用以下站點定的像素轉換成的DP值AndroidPixelConverter

我給在xxxhdpi列像素值,並獲取其各自的DP值,我把它在我的XML佈局。

主要的手機,我測試的是三星S4和Nexus5

以下是我的問題:

  1. 根據this網站Nexus5和三星S4屬於xxhdpi決議,但還是我收到正確的像素值,如果我在上面提到的AndroidPixel轉換器網站使用xxxhdpi列。爲什麼是這樣 ?
  2. Nexus5擁有軟導航欄,因爲三星S4擁有強大的導航功能。我如何檢測它,並相應地給我的佈局值。如果我沒有錯,導航欄的高度爲144px,如果不存在,則會更改佈局維度。我該如何處理?

最後,我正在遵循正確的方法嗎?如果不是,請以正確的方式引導。

P.S:我正在尋找跨越所有設備的像素完美佈局。可能嗎 ?

+0

您確定需要留下以像素爲單位的空間嗎?這實際上是一個奇怪的要求。在不同的器件密度上,頂部的115個像素的範圍可以從幾乎一英寸(在ldpi器件上)到大約1/6英寸(在xxxhdpi器件上)。 –

+0

你是否檢查http://developer.android.com/guide/practices/screens_support.html – Dilip

+0

**「我正在尋找像素完美的佈局」**:Android設備沒有這樣的事情,因爲那裏的事實數百個不同的製造商和數千種不同的設備。 Android不是一個物理設備規範 - 它是一個開源的操作系統,任何人都可以私自使用或商業使用 - 屏幕尺寸*將*變化,屏幕縱橫比*將*變化。嘗試使用絕對像素會失敗 - 使用百分比尺寸,Android會相應地進行調整。普通用戶不會注意到不同設備間的輕微變化。 – Squonk

回答

2

您需要與您的設計師交談,並以不同的方式處理事情。你永遠不想像這樣在px中指定一個佈局。它不會縮放 - px可以是任何大小。回到他身上,得到一個dp數字(dp基本上是1/160英寸)。在dp中設計整個事物。然後讓手機本身將其轉換爲px。

如果你設計像素,它將無法正常工作。以物理尺寸(dp)設計,並讓設備進行翻譯。

此外,您不能假定導航欄的高度。在dp和px方面,它可以並且不同設備之間。

+0

我沒有按照px值進行設計。我將它轉換成上面提到的AndroidPixelConverter網站的dp值。它應該工作正確嗎? – ik024

+0

不,你正在倒退。在dp中指定設計中的所有內容,而不是px。你爲什麼要轉換,然後把它轉換回來?最低級別的手機本身在px上工作,而不是dp,它必須進行翻譯。決定你希望在dp中有多大,然後指定一個單一的佈局。 –