Multiple screens quickview:多个屏幕quickview:
· Android runs on devices that have different screen sizes and resolutions.机器人运行的设备上有不同的屏幕尺寸和分辨率。· The screen on which your application is displayed can affect its user interface.其上显示您的应用程序可能会影响它的用户界面屏幕。
· The platform handles most of the work of adapting your app to the current screen.该平台处理的适应工作中的应用是最大的当前屏幕。
· You can create screen-specific resources for precise control of your UI, if needed.您可以创建屏幕特定资源为您的用户界面的精确控制,如果需要的话。
· Older applications run in a compatibility mode that provides best-effort rendering on the current screen.较旧的应用程序运行在一个兼容性模式,提供有关当前屏幕最大努力渲染。
· It's important to follow the best practices described in this document and test your application in all supported screens.重要的是要按照本文档中描述的最佳做法和测试您的应用程序在所有支持的屏幕。
In this document在这份文件中
1. Overview of Screen Support 屏幕支持概述
2. Range of screens supported 屏幕支持范围
3. How Android supports multiple screens 如何支持多屏幕机器人
7. Best Practices for Screen Independence 屏幕独立的最佳业务实践
8. Strategies for Legacy Apps 传统企业应用策略
9. How to Test Your App 如何测试您的应用程序
See Also参见
2. <uses-sdk>
3. 替代资源
4. android虚拟设备
人们把android设计成可以运行在多种设备上,这使得它可以支持多个屏幕尺寸或者分辨率,对于应用程序而言,android平台提供了一个统一的跨接设备的环境,拥有多种复杂的适合应用程序UI的需要呈现的屏幕,同时,该平台的APIs对应用程序开发者关于他们所作的应用程序UI中显示特定的屏幕尺寸和分辩率做了精确的控制
本文件解释了屏幕,支持平台提供的功能以及如何使用它们在您的应用程序。 通过以下所述的做法在这里,你可以很容易地创建一个应用程序来正确显示屏幕和所有支持的设备,您可以部署到任何一个单一的apk。
如果你已经开发或者发布过一个在Android 1.5或更早版本上运行的应用程序,您应该看看这份文件,你可能需要考虑如何让你的应用程序去适应新的Android应用程序1.6或更高版本设备提供的不同的屏幕显示,在大多数情况下,只有轻微的调整是必要的,但你应该确保测试您的应用程序在所有支持的屏幕。
特别是,如果你有一个现成的应用程序,你想要让用户的设备中使用小屏幕(例如QVGA)请参阅Applications Strategies的遗产,该文档有可以告诉你该如何做。
Overview of Screens Support支持的屏幕概述
以下各节提供了一个基本概述了Android平台的支持多种屏幕,包括在这篇文档和在API会用到的一些术语和概念,关于该平台所支持的屏幕配置的概要,以及API的回顾和底层屏幕兼容的特点。
Terms and Concepts术语和概念
Screen size 屏幕尺寸
实际面积,作为屏幕的对角线测量。 为简单起见,android将所有的实际尺寸合并成三个广义的尺寸:大,正常,小。应用程序为这三种尺寸可以提供自定义布局--该平台就可以透明处理在实际屏幕尺寸呈现的布局。
Aspect ratio 纵横比
该屏幕的物理宽度和高度是成一定的比例关系的,应用程序可以通过使用资源限定符Long和notlong提供特定的纵横比的布局资源
Resolution 分辨率
它是屏幕上物理像素的总和,请注意,虽然分辨率通常被表示为宽*高,但并不意味着它是一个具体的比例
在android中,应用程序并不是直接和分辨率联系在一起
Density 密度
根据屏幕分辨率,屏幕的像素可以延伸到整个屏幕的宽度和高度。一个低密度的屏幕就没有足够的像素延伸到屏幕的宽和高,而高密度的则像素会延伸多点,-有时会遍布更多,-像素会延伸到相同的区域, 一个屏幕的密度很重要,因为相同条件下,一个UI元素(例如一个button)将会被定义成安装该屏幕的像素出现,它会在一个低密度的屏幕中变大,而在高密度的屏幕中显得小点。为简单起见,android将所有的实际密度合并成三个广义的尺寸:高,中等,低。应用程序可以为这三个密度提供自定义资源,-可以根据接收到的实际屏幕密度,让缩放比例升高或者降低。
密度无关的像素(dip)
应用程序可以在他们所定义的UI中使用一个虚拟的像素单元,来反映布局的规模或者是密度独立的方式定位。一个自主的像素等同于再160dip的屏幕上的一个通过计算的平台基准的物理像素(本文件稍后介绍)。在运行时,该平台透明处理任何基于实际密度的屏幕英寸所需的dip单元 ,dip units和屏幕像素的简单转换:pixels = dips * (density / 160) ,例如,在240 dpi的屏幕上,一dip会等于1.5物理像素。强烈推荐用dip units来定义你的application的UI,它可以确保你的UI在不同的屏幕上面合适的显示。
Range of Screens Supported支持的屏幕范围
android1.5和早期版本的平台被设计成仅支持单一的屏幕配置--- 在一个3.2的屏幕上支持(320x480)的分辨率。由于该平台的被定位成只有一个屏幕,应用程序开发人员只能为这个屏幕写一些特定的程序,并不需要担心这些程序是否能运行在其他的屏幕中。
从Android1.6开始的平台添加支持多种屏幕尺寸和分辨率,让许多新类型和尺寸的设备在这个平台都能运行。这意味着,开发人员必须设计他们的应用程序在这一系列的设备和屏幕中能正确的显示
为了简化应用程序开发者设计多个设备的用户界面的方式,并且使得多种设备转换不影响程序,平台划分了多种实际的屏幕尺寸和分辨率如下:
三个广义的尺寸: large , normal , and small
三个广义的密度:high ( hdpi ), medium ( mdpi ), and low (ldpi)
应用程序可以为这三个广,义的尺寸提供自定义资源(主要的布局)。如果需要,它们也可以为三个广义的密度提供资源(比如说图片的主要版面大小),应用程序并不需要和实际的物理尺寸或者设备屏幕的密度相联系。在运行时,该平台处理尺寸和密度基于设备屏幕中的广义的尺寸和密度,使它们适应屏幕上的实际像素
下表列出了android支持的屏幕,说明平台是怎么样分析他们广义屏幕设置:
表1。android支持屏幕的例子
Low density (120), ldpi | Medium density (160), mdpi | High density (240), hdpi | |
Small screen |
|
||
Normal screen |
|
|
|
Large screen |
|
如上所示,各种屏幕配置是“围绕一个基线安排分配密度屏幕大小”normal“和一个”medium。该HVGA屏幕作为基准,因为所有的应用程序的书面反对android1.5或更早版本为在T-MobileG1和类似的设备中的HVGA的屏幕写程序。虽然该平台支持上表列出的9个尺寸密度配置,但你并不需要为每个尺寸密度建立自定义的资源。 该平台提供了强大的兼容特性,下面章节中描述的,可以处理大部分目前呈现您的应用程序的屏幕设备的工作,但前提是UI是正确实施。 .欲了解更多信息,请参阅最佳的屏幕独立实践 。