2011-07-04 55 views
0

我对Android的多屏支持感到困惑。 http://developer.android.com/guide/practices/screens_support.html我看过这篇文章,但对我而言仍然不清楚。Android多屏支持

  • 我用DP代替PX在我的布局
  • 我把高,中,一个图像绘制资源目录的低版本的。

我根据这篇文章做了这个改变。但在一些密度上,尽管其中一些工作得很好,但仍然存在问题。

问题是什么是各种Android屏幕类型的dp单位的确切宽度和高度。如果可以改变的话,px有什么区别?

  • px是可以改变的,dp也是可以改变的吗?有什么不同??

如果可以更改,我应该通过Create函数上的代码更改视图的宽度和高度,或者为每个屏幕牙齿创建单独的布局?请给一个方式来理解这个...

在此先感谢..

回答

1

px是一个固定的措施。这意味着如果小屏幕上的100像素占用屏幕的1/2,则在大屏幕上占用的空间会少得多。 dp =密度(独立)像素,基于设备的密度。所以如果你在一个小屏幕上指定宽度为50dp,它将在一个大屏幕上展开。请注意,由于设备具有不同的纵横比,因此dp不是所有设备上布局兼容性的保证。要构建完美的布局,在所有设备上看起来完全一样,您必须使用更多技术。 Linearlayout允许您分配权重。研究一下。 http://developerlife.com/tutorials/?p=312

2

PX是不可改变的。 DPS或蘸是。

要计算有多少像素中的DPS指定的对象将是使用下面的公式:

密度无关的像素相当于一个物理像素160 dpi的屏幕,这是由假定的基线密度上系统用于“中等”密度屏幕。在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单位的任何缩放比例。将dp单位转换为屏幕像素很简单:px = dp *(dpi/160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。定义应用程序的用户界面时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示您的用户界面。