2011-07-14 50 views
1

我有一個自定義組件在我的應用程序中,我擴展了一個ViewGroup,並添加一堆行(LinearLayouts)與數據和它們之間的小邊界。這在HVGA屏幕上看起來非常好,但在QVGA屏幕上看起來很糟糕。如何在Android設備上獲得像素完美的佈局?

我的問題是我想要一個像素邊界的部分,它可以在HVGA上正常工作,但在QVGA上,一些邊界會變成2像素或0像素(它們中只有一個,但我已經看到兩個像素不同屏幕尺寸)。我通過設置填充的黑色線性佈局來製作邊框。

我想這個問題與px vs dp有關,因爲我之前在我的佈局中使用px時看到過同樣的情況。但現在我試圖在代碼中設置邊界大小,我只能放px,有沒有辦法解決這個問題?

我知道你可以做的計算,以獲得在代碼中的dp值,但這並沒有真正幫助我,因爲我必須設置整數值(所以計算邊框會給我1或2的每一行和它仍然看起來很糟糕)。

+0

您可以添加一些代碼,以便我們可以看到您正在做什麼,以及模擬器設置導致問題的原因(假設您正在使用模擬器) – Idistic

回答

0

一般來說,我強烈建議讓所有可能的佈局值引用一個資源值。 尺寸將被存儲爲「值」。這些值將接受dp,這是理想的使用方法。

如果您的佈局不夠通用以適合所有屏幕,那麼通過添加額外的價值資源來爲不同屏幕定製不同大小是非常容易的。