2011-07-14 47 views
1

我有一个自定义组件在我的应用程序中,我扩展了一个ViewGroup,并添加一堆行(LinearLayouts)与数据和它们之间的小边界。这在HVGA屏幕上看起来非常好,但在QVGA屏幕上看起来很糟糕。如何在Android设备上获得像素完美的布局?

我的问题是我想要一个像素边界的部分,它可以在HVGA上正常工作,但在QVGA上,一些边界会变成2像素或0像素(它们中只有一个,但我已经看到两个像素不同屏幕尺寸)。我通过设置填充的黑色线性布局来制作边框。

我想这个问题与px vs dp有关,因为我之前在我的布局中使用px时看到过同样的情况。但现在我试图在代码中设置边界大小,我只能放px,有没有办法解决这个问题?

我知道你可以做的计算,以获得在代码中的dp值,但这并没有真正帮助我,因为我必须设置整数值(所以计算边框会给我1或2的每一行和它仍然看起来很糟糕)。

+0

您可以添加一些代码,以便我们可以看到您正在做什么,以及模拟器设置导致问题的原因(假设您正在使用模拟器) – Idistic

回答

0

一般来说,我强烈建议让所有可能的布局值引用一个资源值。 尺寸将被存储为“值”。这些值将接受dp,这是理想的使用方法。

如果您的布局不够通用以适合所有屏幕,那么通过添加额外的价值资源来为不同屏幕定制不同大小是非常容易的。