我會逐步解決我的問題,以便跟蹤/回答更容易。Android:可以在佈局上使用DP並使其在不同設備上看起來相同?
步驟1:根據Android Developer Guide,「密度無關像素相當於160 dpi屏幕上的一個物理像素」。這意味着在具有233dpi的Galaxy S上,1dp等於1.46物理像素(233/160)。
步驟2:鑑於Galaxy S的分辨率爲480x800,這意味着它的屏幕高度爲548dp(800物理像素除以1.46)。因此,如果我將我創建的LinearLayout的高度設置爲274dp,那麼它只需要一半的屏幕。我測試過了,它工作。
第3步:Galaxy S3具有306 dpi,因此在該設備上1dp = 1.9125物理像素(306/160)。由於它的分辨率爲720x1280,其屏幕高度爲670dp(1280/1.9125)。再次,如果我用大約335製作一個LinearLayout,它會佔用一半的屏幕。經過測試和工作。
問題:我該如何製作一個LinearLayout,它將在Galaxy S和Galaxy S3上使用與密度無關的像素,同時佔用一半的屏幕?因爲如果我使用274dp,它只會在S上佔用一半的屏幕,反之亦然。或者我的計算在任何一步都是錯誤的?
更新:思考它我想出了以下想法:使用「ScreenMetrics」來獲得設備的dpi和屏幕分辨率。然後,讓我的應用程序計算DP中屏幕的總大小(這將是分辨率除以(device/160的dpi)的分辨率,然後將佈局的高度動態設置爲其大小的一半。我想這是做到這一點的呢?
我明白了。事實上,我在我的問題中使用了這些計算。我正在問一些不同的東西。 – 2012-08-16 01:15:47