有两种方法可以做到这一点。从 Android 1.6 (API 4) 开始,有四种布局可以描述显示器的物理尺寸:小、普通、大和超大。如http://developer.android.com/guide/practices/screens_support.html所述,这些对应于:
- 超大屏幕至少为 960dp x 720dp
- 大屏幕至少为 640dp x 480dp
- 普通屏幕至少为 470dp x 320dp
- 小屏幕至少为 426dp x 320dp
请注意,这些是以 DP 而非 DPI 衡量的。DPI 是每英寸点数,并指定屏幕密度。DP,也写成 DIP,是与密度无关的像素。再次来自指南:
与密度无关的像素 (dp)
定义 UI 布局时应使用的虚拟像素单位,以与密度无关的方式表示布局尺寸或位置。与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统会根据使用中屏幕的实际密度,根据需要透明地处理 dp 单位的任何缩放。dp 单位到屏幕像素的转换很简单:px = dp * (dpi / 160)。例如,在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。
换句话说,160 DP = 1"。应用这个标准,我们看到:
- xlarge 屏幕至少为 6" x 4.5"(对角线为 7.5")
- 大屏幕至少为 4" x 3"(5" 对角线)
- 普通屏幕至少为 2.9" x 2"(对角线 3.5")
- 小屏幕至少为 2.6" x 2"(对角线为 3.3")
(不知道为什么选择如此奇怪,但这就是他们定义的。)
从 Android 3.2 (API 13) 开始,有更多选项,如下所述:http:
//developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts
在这里您可以使用“最小屏幕宽度”、“可用宽度”或“可用高度”选项来定义自己的类别;同样,有问题的单位是 DP,即 1/160"。请注意,这些指定了设备上两个维度中较小的一个 - 例如,对于 7" 平板电脑,他们建议指定 layout-sw600dp,即“最小宽度 3.75 英寸”,这将介于 API 4 中定义的“大”和“特大”尺寸之间。他们对此主题有许多具体的评论,包括关于如何测量宽度的注释(它可能不包括像通知栏),因此值得查看文档。