我对android的多屏幕支持感到困惑。 http://developer.android.com/guide/practices/screens_support.html我读过这篇文章,但对我来说仍然有些不清楚。
我根据这篇文章做了这个改变。但在一些密度方面,虽然其中一些工作得很好,但仍然存在问题。
问题是各种Android屏幕类型的dp单位的确切宽度和高度是多少。如果它是可变的,px之间有什么区别?
如果可以更改,我应该通过创建功能上的代码更改视图的宽度和高度,还是为每个屏幕牙齿创建单独的布局?请给出一个理解这个的方法......
提前致谢..
答案 0 :(得分:2)
px不可更改。 dps或dips。
要计算在dps中指定的对象的px数量,请使用以下公式:
与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单元的任何缩放。 dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。在定义应用程序的UI时,应始终使用dp单位,以确保在具有不同密度的屏幕上正确显示UI。
答案 1 :(得分:1)
px是一个固定的衡量标准。这意味着如果小屏幕上的100px占据屏幕的1/2,则在大屏幕上占用的空间会少得多。 dp =密度(独立)像素,基于设备的密度。因此,如果您在小屏幕上指定宽度为50dp,它将在大屏幕上展开。请注意,dp不是所有设备上布局兼容性的保证,因为设备具有不同的宽高比。要构建一个完美的布局,在所有设备上看起来完全相同,您必须使用更多技术。 Linearlayout允许您分配权重。看看那个。 http://developerlife.com/tutorials/?p=312