Android运行在多种设备,提供不同的屏幕尺寸和密度。旋转设备会改变设备配置,设备配置是用来描述设备当前状态的一系列特征。
这些特征包括:屏幕的方向、屏幕的密度、屏幕的尺寸、键盘类型、底座模式以及语言,等等。
从Android 1.6(API4)开始,Android提供了支持多个屏幕尺寸和密度,反映的设备可能有许多不同的屏幕配置。
为了简化设计的方式, Android将实际的屏幕尺寸和密度范围划分为:small/ normal/ large/ xlarge。设置四个广义密度:ldpi/ mdpi/ hdpi/ xhdpi。
每个设计有其要求的最小空间:xlarge 960dpx 720dp,large 640dpx 480dp,normal 470dpx 320dp,small 426dpx 320dp。不必为每一个屏幕大小和密度的组合设置替代资源。同时,Android系统提供了强大的兼容特性,可以在任何配置的屏幕上呈现应用程序的大部分工作。
为了妥善处理不同的屏幕配置,可以采用以下几种建议:
1、显式声明应用程序所支持的屏幕尺寸清单
声明应用程序支持的屏幕尺寸,可以确保只有支持该应用的设备可以下载你的应用程序。
2、更重要的,提供适当的备选资源
通常,为匹配不同的设备配置,应用会提供不同的备选资源。为适应不同分辨率的屏幕,向项目里添加多套箭头图标就是这样的一个使用案例。
设备的屏幕密度是一个固定的设备配置,无法在运行时发生改变。而有些特征,如屏幕方向,可以在运行时进行改变。
在运行时配置变更发生时,可能会有更合适的资源来匹配新的设备配置。如果新建一个备选资源,当设备旋转至水平方位,Android就会自动发现并使用它。
创建水平模式布局方法如下:
首先,在包浏览器中,右键单击res目录创建一个新文件夹并命名为layout-land,如图1所示。
将activity.xml(应用对应的布局文件,名字不一定相同)文件从res/layout/目录复制至res/layout-land/目录。现在我们就有了一个水平模式布局和一个默认布局(竖直模式)。注意,两个布局文件必须具有相同点文件名,这样它们才能以同一个资源ID被引用。
这里-land后缀名是配置修饰符的另一个使用例子。res子目录的配置修饰符表明了Android是如何通过它来定位最佳资源以匹配当前设备配置的。设备处于水平方向时,Android会找到并使用res/layout-land目录下的布局资源,其他则会默认使用res/layout目录下的布局资源。
图1
下表就是Android的配置修饰符列表以及配置修饰符代表的设备配置信息。
屏幕 | 配置修饰符 | 说明 |
尺寸 | small | 小尺寸屏幕的资源。 |
normal | 正常大小的屏幕资源,这是基线的大小。 | |
large | 大尺寸屏幕上的资源。 | |
xlarge | 超大尺寸的屏幕资源。 | |
密度 | ldpi | 低密度(ldpi)屏幕(〜120dpi)的资源。 |
mdpi | 中等密度的资源(mdpi)屏幕(160dpi),这是基准密度。 | |
hdpi | 高密度(hdpi)屏幕(〜240dpi)的资源。 | |
xhdpi | 额外的高密度(xhdpi)屏幕(〜320dpi)的资源。 | |
方向 | land | 屏幕在横向的资源。 |
port | 屏幕在纵向的资源。 | |
长宽比 | long | 相比基线的屏幕配置资源,屏幕有一个显著高或更广泛的宽高比(在纵向或横向) |
notlong | 使用屏幕的长宽比是类似的基线屏幕配置资源。 |
表1
如果没有匹配的资源是可用的,系统将使用默认的资源和规模向上或向下需要,以符合当前的屏幕大小和密度。
术语和概念:
1、屏幕尺寸
实际的物理尺寸,屏幕的对角线测量。
为方便起见,Android的群体所有实际屏幕尺寸分为四个广义的大小:小,正常,大,特大。
2、屏幕密度
屏幕的物理面积内像素的数量,通常称为DPI(每英寸点数)。 例如,“低”的密度屏幕在一个给定的物理区域内,相比一个“正常”或“高”密度屏幕有较少的像素。
为方便起见,Android的屏幕密度分为四个广义密度:低,中,高,特高。
3、方向
从用户的角度来看,屏幕的方向。
4、分辨率
在屏幕上的物理像素总数。
5、密度无关的像素(DP)
一个虚拟像素单元,在使用定义UI的布局时,以密度无关的方式来表达布局尺寸或位置。在运行时,系统直接处理DP单位,必要时根据实际使用的屏幕密度缩放。DP单位转换为屏幕像素:px = dp * (dpi / 160)) 。例如,一个240 dpi屏幕上,1 DP等于1.5物理像素。定义应用程序的UI时,应该总是使用DP单位,以确保不同密度的屏幕上显示的用户界面适当。
Android运行在多种设备,提供不同的屏幕尺寸和密度。旋转设备会改变设备配置,设备配置是用来描述设备当前状态的一系列特征。
这些特征包括:屏幕的方向、屏幕的密度、屏幕的尺寸、键盘类型、底座模式以及语言,等等。
从Android 1.6(API4)开始,Android提供了支持多个屏幕尺寸和密度,反映的设备可能有许多不同的屏幕配置。
为了简化设计的方式, Android将实际的屏幕尺寸和密度范围划分为:small/ normal/ large/ xlarge。设置四个广义密度:ldpi/ mdpi/ hdpi/ xhdpi。
每个设计有其要求的最小空间:xlarge 960dpx 720dp,large 640dpx 480dp,normal 470dpx 320dp,small 426dpx 320dp。不必为每一个屏幕大小和密度的组合设置替代资源。同时,Android系统提供了强大的兼容特性,可以在任何配置的屏幕上呈现应用程序的大部分工作。
为了妥善处理不同的屏幕配置,可以采用以下几种建议:
1、显式声明应用程序所支持的屏幕尺寸清单
声明应用程序支持的屏幕尺寸,可以确保只有支持该应用的设备可以下载你的应用程序。
2、更重要的,提供适当的备选资源
通常,为匹配不同的设备配置,应用会提供不同的备选资源。为适应不同分辨率的屏幕,向项目里添加多套箭头图标就是这样的一个使用案例。
设备的屏幕密度是一个固定的设备配置,无法在运行时发生改变。而有些特征,如屏幕方向,可以在运行时进行改变。
在运行时配置变更发生时,可能会有更合适的资源来匹配新的设备配置。如果新建一个备选资源,当设备旋转至水平方位,Android就会自动发现并使用它。
创建水平模式布局方法如下:
首先,在包浏览器中,右键单击res目录创建一个新文件夹并命名为layout-land,如图1所示。
将activity.xml(应用对应的布局文件,名字不一定相同)文件从res/layout/目录复制至res/layout-land/目录。现在我们就有了一个水平模式布局和一个默认布局(竖直模式)。注意,两个布局文件必须具有相同点文件名,这样它们才能以同一个资源ID被引用。
这里-land后缀名是配置修饰符的另一个使用例子。res子目录的配置修饰符表明了Android是如何通过它来定位最佳资源以匹配当前设备配置的。设备处于水平方向时,Android会找到并使用res/layout-land目录下的布局资源,其他则会默认使用res/layout目录下的布局资源。
图1
下表就是Android的配置修饰符列表以及配置修饰符代表的设备配置信息。
屏幕 | 配置修饰符 | 说明 |
尺寸 | small | 小尺寸屏幕的资源。 |
normal | 正常大小的屏幕资源,这是基线的大小。 | |
large | 大尺寸屏幕上的资源。 | |
xlarge | 超大尺寸的屏幕资源。 | |
密度 | ldpi | 低密度(ldpi)屏幕(〜120dpi)的资源。 |
mdpi | 中等密度的资源(mdpi)屏幕(160dpi),这是基准密度。 | |
hdpi | 高密度(hdpi)屏幕(〜240dpi)的资源。 | |
xhdpi | 额外的高密度(xhdpi)屏幕(〜320dpi)的资源。 | |
方向 | land | 屏幕在横向的资源。 |
port | 屏幕在纵向的资源。 | |
长宽比 | long | 相比基线的屏幕配置资源,屏幕有一个显著高或更广泛的宽高比(在纵向或横向) |
notlong | 使用屏幕的长宽比是类似的基线屏幕配置资源。 |
表1
如果没有匹配的资源是可用的,系统将使用默认的资源和规模向上或向下需要,以符合当前的屏幕大小和密度。
术语和概念:
1、屏幕尺寸
实际的物理尺寸,屏幕的对角线测量。
为方便起见,Android的群体所有实际屏幕尺寸分为四个广义的大小:小,正常,大,特大。
2、屏幕密度
屏幕的物理面积内像素的数量,通常称为DPI(每英寸点数)。 例如,“低”的密度屏幕在一个给定的物理区域内,相比一个“正常”或“高”密度屏幕有较少的像素。
为方便起见,Android的屏幕密度分为四个广义密度:低,中,高,特高。
3、方向
从用户的角度来看,屏幕的方向。
4、分辨率
在屏幕上的物理像素总数。
5、密度无关的像素(DP)
一个虚拟像素单元,在使用定义UI的布局时,以密度无关的方式来表达布局尺寸或位置。在运行时,系统直接处理DP单位,必要时根据实际使用的屏幕密度缩放。DP单位转换为屏幕像素:px = dp * (dpi / 160)) 。例如,一个240 dpi屏幕上,1 DP等于1.5物理像素。定义应用程序的UI时,应该总是使用DP单位,以确保不同密度的屏幕上显示的用户界面适当。