已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android支持多种屏幕快速查看 Android运行的设备上有不同的屏幕尺寸和密度。 屏幕上显示您的应用程序可能会影响其用户界面。 该系统处理您的应用程序,以适应当前屏幕的工作最。 您应该创建UI的精确控制屏幕上的特定资源。在这份文件中屏幕支持概述术语和概念支持屏幕范围密度的独立性如何支持多个屏幕使用配置预选赛设计替代布局和drawables声明为Android 3.2平板布局新的!使用新的大小预选赛配置示例声明屏幕尺寸支持最佳实践附加密度注意事项在运行时创建的对象缩放位图DP单位转换为像素单位如何测试您的应用程序在多个屏幕上相关样本多分辨率另请参阅像一个网页设计师的思考提供替代资源图标设计指南管理虚拟设备Android运行在多种设备,提供不同的屏幕尺寸和密度。对于应用程序,Android系统提供一致的跨设备的开发环境,并调整每个应用程序的用户界面,屏幕上显示处理的大部分工作。同时,该系统提供的API,允许您控制您的应用程序的特定的屏幕尺寸和密度,不同的屏幕配置,以优化您的UI设计UI。例如,您可能需要一个药片的不同,用于手机的用户界面的UI。尽管该系统进行缩放和调整大小,使您的应用程序在不同的屏幕工作,你应该作出努力,以优化您的应用程序不同屏幕尺寸和密度。在这样做,可以最大限度地发挥所有设备的用户体验和用户相信,您的应用程序实际上是为他们的设备,而只是拉伸以适应屏幕上自己的设备比设计。按照本文档中所述的做法,你可以创建一个应用程序,显示正常,并提供了一个对所有支持的屏幕配置优化的用户体验,.apkapk文件。注:本文档中的信息假设您的应用程序设计的Android 1.6(API等级4)或更高。如果您的应用程序支持Android 1.5或更低,请首先阅读了Android 1.5的策略。此外,要知道是Android3.2推出新的API,使您能够更精确地控制您的应用程序使用不同屏幕尺寸的布局资源。这些新功能尤其重要,如果你正在开发的应用程序优化的片。有关详情,请参阅有关节宣布的Android 3.2平板布局。屏幕概述支持本节概述Android的多个屏幕上的支持,包括:介绍的条款和本文件的空气污染指数,总结的屏幕配置,该系统支持,使用的概念,并概述的空气污染指数和底层屏幕兼容性功能。术语和概念屏幕尺寸实际的物理尺寸,屏幕的对角线测量。为方便起见,Android的群体所有实际屏幕尺寸分为四个广义的大小:小,正常,大,特大。屏幕密度屏幕的物理面积内像素的数量,通常称为DPI(每英寸点数)。例如,“低”的密度屏幕有一个给定的物理区域内,一个“正常”或“高”密度屏幕相比较少的像素。为方便起见,Android的群体所有实际的屏幕密度分为四个广义密度低,中,高,特高。方向从用户的角度来看,屏幕的方向。这是横向或纵向的意义,是宽屏幕的宽高比或高大,分别。要知道,做不同的设备不仅操作默认情况下,在不同的方向,但可以在运行时改变方向,当用户旋转设备。分辨率在屏幕上的物理像素总数。加入支持多个屏幕时,应用程序不直接与决议;应用程序应该只关注屏幕大小和密度,广义的大小和密度组指定。密度无关的像素(DP)一个虚拟像素单元时,你应该使用定义UI的布局,密度无关的方式来表达布局尺寸或位置。相当于一个160 dpi的屏幕,这是系统假设为“中等”的密度屏幕的基准密度的物理像素密度无关的像素。在运行时,系统透明地处理任何DP单位,必要时根据实际使用中的屏幕密度,缩放。DP单位转换为屏幕像素是简单的px = dp * (dpi / 160)) 。例如,一个240 dpi屏幕上,1 DP等于1.5物理像素。定义你的应用程序的UI时,你总是应该使用DP单位,以确保不同密度的屏幕上显示你的用户界面的适当。支持屏幕范围与Android 1.6(API等级4)开始,Android提供了支持多个屏幕尺寸和密度,反映的设备可能有许多不同的屏幕配置。您可以使用Android系统的特点,为每个屏幕的配置,以优化您的应用程序的用户界面,并确保您的应用程序不仅提供了正常,但在每个屏幕上提供最佳的用户体验。为了简化设计的方式,你多个屏幕上你的用户界面,Android的划分实际的屏幕尺寸和密度范围为: 小,正常,大,和XLARGE:四个广义的大小设置注:从与Android 3.2(API级别13)开始,这些大小团体都赞成一个管理屏幕尺寸上的可用屏幕宽度为基础的新技术已过时。如果你的Android 3.2和更高的发展,宣布为Android 3.2的平板布局的更多信息。 设置四个广义密度ldpi(低),mdpi(中型),hdpi(高),并xhdpi(特高):广义的大小和密度都围绕一个基准配置,是一个正常大小和mdpi(中)密度的安排。这个基线是第一款Android供电设备,在T - Mobile的G1,其中有一个HVGA屏幕后,屏幕配置(至Android 1.6的基础,这是唯一的屏幕配置,Android的支持)。每个广义的大小和密度跨越一系列实际的屏幕尺寸和密度。例如,两个设备都报告一个正常的屏幕尺寸可能略有不同,手工测量实际的屏幕尺寸和宽高比。同样,两个设备报告的hdpi屏幕密度可能有真正的像素密度略有不同。Android的应用抽象到这些差异,因此可以提供用户界面设计广义的大小和密度,并让系统来处理任何必要的最后调整。图1说明了如何大致分类成不同的大小和密度组不同大小和密度。图1。Android的大致地图的实际大小和密度,以广义的大小和密度(数字不准确)的插图。当您设计你的UI不同屏幕尺寸,你会发现,每个设计要求的最小空间量。因此,每一个广义的屏幕尺寸,上面有一个关联的最低由系统定义的决议。“DP”的单位,同一单位,你应该定义你的布局,使系统以避免担心屏幕密度的变化时,使用这些最小尺寸。 XLARGE屏幕至少960dp x 720dp 大屏幕至少640dp x 480dp 正常的屏幕至少470dp x 320dp 小屏幕至少426dp x 320dp注:这些最小的屏幕尺寸以及没有定义之前的Android 3.0,所以你可能会遇到一些设备之间正常的,大型的MIS分类。这也是基于屏幕的物理分辨率,所以可能各不相同的设备,例如一个系统栏1024x720平板,实际上有位由于它被用于系统栏的应用程序可用的空间少。为了优化应用程序的UI不同屏幕尺寸和密度,您可以提供任何广义的大小和密度的替代资源。通常情况下,你应该提供一些不同的屏幕尺寸和不同的屏幕密度替代的位图图像的替代布局。在运行时,该系统采用适当的资源,为您的应用程序基础上的广义当前设备的屏幕大小或密度。您不必为每一个屏幕大小和密度的组合替代资源。该系统提供了强大的兼容特性,可以处理任何设备的屏幕上呈现您的应用程序的大部分工作,你实现你的用户界面,使用的技术,允许它正常调整(中所描述的最佳实践,下面)。注:定义设备的广义的屏幕大小和密度的特点,是相互独立的。例如,一个WVGA高密度的屏幕被认为是一个正常大小的屏幕,因为它的物理尺寸是相同的T - Mobile G1(Android的设备和基线的屏幕配置)。另一方面,WVGA屏幕中密度被认为是一个大尺寸屏幕。虽然它提供了相同的分辨率(像素数相同),WVGA屏幕中密度较低的屏幕密度,这意味着每个像素的尺寸更大,因此,整个屏幕大于基线(正常大小)屏幕。密度的独立性您的应用程序是实现“密度台独”,当它保留了不同密度的屏幕上显示时的用户界面元素的物理尺寸(从用户的角度来看)。保持密度的独立性是非常重要的,因为,没有它,一个UI元素(如按钮),身体会出现较大的低密度屏幕和一个高密度的屏幕小。等密度大小的变化可能会导致您的应用程序的布局和可用性的问题。图2和图3显示了一个应用程序之间的差异,当它不提供密度独立性和当它,分别。图2示例应用程序,不支持不同密度低,中,高密度的屏幕上显示。图3不同密度(它的密度无关),低,中,高密度的屏幕显示,支持应用实例。Android系统帮助您的应用程序密度独立两种方式实现: 当前画面的密度适当的系统规模DP单位 绘制资源系统规模适当的大小,根据当前的屏幕密度,如有必要在图2中,文本视图和位图绘制在指定的尺寸像素px像素单位),这样的意见是身体较大的低密度屏幕上,并在高密度屏幕较小。这是因为实际的屏幕尺寸虽然可能是相同的,高密度的屏幕每英寸的像素越多(适合在一个较小的区域的像素相同金额)。在图3,密度无关的像素(dp单位)指定的布局尺寸。由于密度无关的像素的基线是一个中等密度的屏幕,一个中等密度的屏幕的设备看起来都一样,因为它是在图2。然而,对于低密度和高密度的屏幕,系统规模的密度无关的像素值向上和向下,分别以适应适当的屏幕。在大多数情况下,可以确保密度在您的应用程序的独立性,只要指定密度无关的像素(所有布局的dp值DP单位wrap_contentwrap_content“,适当的。然后系统适当的规模,位图,为了drawables显示在适当的大小,根据当前画面的密度适当缩放因子。然而,位图缩放,可能会导致模糊或像素的位图,您可能会注意到在上面的截图。为了避免这些文物,你应该提供不同密度的替代位图资源。例如,你应该提供更高分辨率的位图高密度的屏幕和系统将使用调整大小,而不是那些中等密度的屏幕设计的位图。以下部分介绍了有关如何提供不同的屏幕配置替代资源。如何支持多个屏幕Android的支持多个屏幕的基础是其管理能力在当前屏幕配置适当的方式呈现应用程序的布局和位图drawables。该系统处理的大部分工作,使您的应用程序,每个屏幕的配置上,通过扩大布局,以适应屏幕尺寸/屏幕密度的密度和缩放位图drawables,适当。为了更妥善处理不同的屏幕配置,不过,你也应该: 显式声明在您的应用程序支持屏幕尺寸的清单声明您的应用程序支持屏幕尺寸,可以确保只有您的支持与屏幕的设备可以下载你的应用程序。宣布支持不同的屏幕尺寸也可以影响系统如何借鉴了更大的屏幕,特别是您的应用程序,应用程序是否在运行屏幕兼容模式。要申报你的应用程序支持的屏幕尺寸,你应 manifest文件中的元素。 提供不同屏幕尺寸的不同布局默认情况下,Android的调整您的应用程序的布局,以适应当前的设备屏幕。在大多数情况下,这个工程的罚款。在其他情况下,你的用户界面可能不看一样好,可能需要不同屏幕尺寸的调整。例如,一个更大的屏幕上,你可能需要调整某些元素的位置和大小,采取额外的屏幕空间优势,或一个较小的屏幕上,你可能需要调整大小,使一切都可以在屏幕上。您可以使用提供的大小,具体的资源配置small小normal正常large大xlargeXLARGE 。例如,一个额外的大屏幕的布局layout-xlarge/, XLARGE /。采用Android 3.2(API级别13),以上规模的群体已被弃用,您应该使用swdp配置预选赛定义布局资源所需的最小可用宽度。例如,如果你多窗格平板布局屏幕的宽度至少需要600dp,你应该放置在layout-sw600dp/。声明布局资源利用的新技术,是在一节中进一步讨论有关声明的Android 3.2平板布局。 提供不同的屏幕密度不同的位图drawables默认情况下,您的位图drawables(.png,.jpg,和.gif文件)和9个补丁drawables.9.png文件)的Android尺度,使它们呈现在适当的每台设备上的物理尺寸。例如,如果您的应用程序只提供基准,中型屏幕密度(mdpi),位图drawables,然后系统规模时,一个高密度的屏幕上,和规模下来时低密度屏幕上。这个比例可能会导致文物中的位图。为了确保您的位图看他们最好的,你应该包括在不同的屏幕密度不同的分辨率的替代版本。你可以为具体密度,资源配置预选赛使用ldpi(低),mdpi(中型),hdpi(高),并xhdpi(特高)。例如,高密度的屏幕的drawable-hdpi/的hdpi /。的大小和密度配置预选赛中所述的广义的大小和密度的屏幕范围的支持下,上述对应。注意:如果你不熟悉配置预选赛和系统如何使用他们申请的替代资源,阅读提供替代资源的更多信息。在运行时,该系统可确保最好的下列程序对于任何给定的资源,在当前屏幕上显示:1. 该系统采用适当的替代资源当前屏幕的大小和密度的基础上,该系统采用任何大小和密度在您的应用程序提供特定的资源。例如,如果该设备具有高密度的屏幕和应用程序请求绘制的资源,寻找一个最匹配的设备配置的绘制资源目录系统。根据其他替代现有资源,与资源目录hdpi限定符(如drawable-hdpi/)可能是最好的匹配,因此该系统采用的是从这个目录的绘制资源。2. 如果没有匹配的资源是可用的,系统将使用默认的资源和规模向上或向下需要,以符合当前的屏幕大小和密度“默认”的资源是那些没有标签配置限定符。例如,在资源drawable/默认绘制的资源。系统假定为基线的屏幕尺寸和密度,这是正常的屏幕尺寸和中等密度设计,默认资源。,系统规模的默认密度资源高密度的屏幕上下低密度屏幕,适当。然而,当系统正在寻找一个特定密度的资源和密度特定的目录中没有找到它,它不会总是使用默认的资源。系统可能会改用其他密度特定的资源之一,以提供更好的效果,缩放时。举例来说,寻找一个低密度的资源时,它不可用,系统倾向于规模下资源的高密度版本,因为该系统可以轻松地扩展一个高密度的资源,低密度的由比的0.5倍,用较少的文物,扩大中等密度资源的0.75倍。的Android如何选择设备配置匹配的配置预选赛的替代资源的更多信息,请阅读的Android如何找到最佳匹配的资源。使用配置预选赛Android支持多种配置预选赛,让您的控制系统如何选择替代的资源,根据当前设备屏幕的特点。配置限定符是一个字符串,你可以追加到资源目录在你的Android项目,并指定为内部资源的设计配置。使用配置限定符:1. res/目录下创建一个新项目的目录和名称使用的格式为-o 是标准的资源的名称(如drawable或layout)。o 是从下面的表1,配置限定符,指定要使用这些资源(hdpihdpixlargeXLARGE )的屏幕配置。您可以使用多个时间只需单独每个限定符与破折号。2. 在这个新的目录,保存适当的配置特定资源。资源文件必须命名为默认的资源文件完全一样。例如,xlarge是一个额外的大屏幕的配置限定符。当您附加资源目录的名称(如layout-xlarge) ,这个字符串,它表示系统,有一个额外的大屏幕的设备上使用这些资源。表1的配置预选赛,让您提供特殊的资源,为不同的屏幕配置。屏幕特点预选赛说明尺寸small小尺寸屏幕的资源。normal正常大小的屏幕资源。(这是基线的大小。)large大尺寸屏幕上的资源。xlarge超大尺寸的屏幕资源。密度ldpi低密度(ldpi)屏幕(120DPI)的资源。mdpi中等密度的资源(mdpi)屏幕(160dpi) 。(这是基准密度。)hdpi高密度(hdpi)屏幕(240dpi)的资源。xhdpi额外的高密度(xhdpi)屏幕(320dpi)的资源。nodpi所有密度的资源。这些都是独立的密度,资源。该系统不结垢预选赛与此标签的资源,无论当前屏幕的密度。tvdpi介于mdpi和hdpi屏幕资源;约213dpi。这不被视为一个“主”的密度组。它主要用于电视和大多数应用程序不应该需要它提供mdpi和hdpi资源足以满足大多数应用程序和系统将适当规模。如果你觉得有必要提供tvdpi资源,你应该在1.33 * mdpi的一个因素。例如,mdpi屏幕是100px x为100px的图像应为133px x 133px tvdpi。方向land屏幕在横向(宽比)的资源。port在纵向(高宽高比)的屏幕资源。长宽比long屏幕有一个显著高或更广泛的宽高比(在纵向或横向),分别比基线的屏幕配置资源。notlong使用屏幕的长宽比是类似的基线屏幕配置资源。注:如果您正在开发您的应用程序的Android 3.2和更高版本,看到有关声明平板布局部分为Android3.2有关新配置预选赛的信息,你应该使用声明为特定的屏幕尺寸的布局资源(而不是使用的大小预选赛时在表1)。欲了解更多有关如何将这些预选赛大致对应于实际的屏幕尺寸和密度的信息,看到的画面范围的支持下,在本文档前面。例如,下面是在一个应用程序,提供不同的布局设计,为不同屏幕尺寸和不同的位图,为中,高,和额外的高密度屏drawables列表的资源目录。 res/layout/my_layout.xml /正常尺寸屏幕布局(“默认”) res/layout-small/my_layout.xml /小尺寸屏幕布局 res/layout-large/my_layout.xml /大尺寸屏幕布局 res/layout-xlarge/my_layout.xml /超大尺寸屏幕布局 res/layout-xlarge-land/my_layout.xml /超大尺寸屏幕横向布局 res/drawable-mdpi/my_icon.png /中密度位图 res/drawable-hdpi/my_icon.png /高密度位图 res/drawable-xhdpi/my_icon.png /超高密度位图欲了解更多有关如何使用替代资源的配置预选赛的完整列表(不只是屏幕配置)的详细信息,请参阅提供替代资源。要知道,当Android系统的选择将哪些资源在运行时使用,它采用一定的逻辑determing“最佳匹配”的资源。也就是说,您使用的预选赛没有完全匹配当前的屏幕配置在所有情况下,系统才能使用它们。具体来说,选择大小预选赛上的资源时,系统将使用屏幕小于当前屏幕设计的资源,如果没有资源,更好地匹配(例如,一个大尺寸的屏幕将使用正常大小的屏幕资源,如果必要时)。但是,如果唯一可用的资源是比当前屏幕大,系统不会使用他们,你的应用程序会崩溃,如果没有其他的资源相匹配的设备配置(例如,如果所有的布局资源与xlargeXLARGE限定符,但设备是一个正常大小的屏幕)。对于系统如何选择资源的详细信息,请阅读的Android如何找到最佳匹配的资源。提示:如果你有一些绘制的资源,该系统应从未规模(也许是因为你执行一些调整,以自己在运行时的形象),你应该放置在一个目录nodpinodpi配置限定符。这个限定的资源被认为是密度无关,系统将无法对其进行定标。设计替代布局和drawables你应该创建可替代资源的类型取决于应用程序的需要。通常情况下,你应该使用的大小和方向的预选赛,提供可供选择的布局的资源,并使用密度预选赛提供替代的位图绘制资源。以下部分概括了,你怎么可能要使用的大小和密度预选赛,分别提供替代的布局和drawables,。替代布局一般来说,你就会知道你是否需要不同屏幕尺寸的替代的布局,一旦你测试你的应用程序在不同的屏幕配置。例如: 在小屏幕上进行测试时,您可能会发现,你的布局不很适合在屏幕上。例如,一排的按钮可能不适合在屏幕上的小屏幕设备的宽度。在这种情况下,你应该提供一个小屏幕上的另一种布局,调整大小或按钮的位置。 当一个额外的大屏幕上测试,你可能会意识到你的布局没有大屏幕的使用效率,显然是捉襟见肘,以填补它。在这种情况下,你应该提供一个额外的大屏幕替代布局,这是更大的屏幕,如片剂进行了优化,提供了一个重新设计的用户界面。虽然您的应用程序应该罚款没有一个大屏幕的替代布局,它的用户非常重要,您的应用程序看起来虽然它的设计专门为他们的设备。如果用户界面显然是捉襟见肘,用户更可能是不满意与应用经验。 而且,相比纵向,横向测试时,你可能会注意到,UI元素放置在纵向屏幕的底部应改为横向屏幕的右侧。总之,你应该确保您的应用程序的布局: 适合在小屏幕上(这样用户就可以使用您的应用程序) 大屏幕进行了优化,采取额外的屏幕空间的优势 优化横向和纵向方向,如果你的用户界面使用位图需要,以适应一个视图的大小,即使系统规模的布局(如一个按钮的背景图片),你应该使用的九补丁位图文件。一个九补丁文件基本上是一个PNG文件,在您特定的二维区域,可拉伸的。当系统需要大规模使用位图,该系统延伸的九补丁位图,但绵延只有指定地区。因此,您并不需要提供不同屏幕尺寸的不同drawables,因为补丁九位图,可以调整到任何尺寸。然而,你应该提供不同的屏幕密度九补丁文件的备用版本。替代drawables图4。支持每个密度的位图drawables的相对大小。几乎每一个应用程序应该有不同的屏幕密度的绘制替代资源,因为几乎每个应用程序都有一个启动图标,图标看起来应该对所有的屏幕密度好。同样,如果包括其他位图drawables在您的应用程序(如在您的应用程序菜单图标或其他图形),你应该提供替代版本或每一个,针对不同的密度。注意:你只需要提供位图文件的密度具体drawables.png.jpg.gif。九路文件(.9.png。 )如果您使用XML文件来定义形状,颜色,或其他绘制资源,你应该把一个副本在默认的绘制目录(drawable/)。为了创造不同密度的替代位图drawables,你应该遵循3:4:6:8的缩放比例,四者之间的广义密度。例如,如果你有一个位图的绘制,中等密度的屏幕(一个启动图标的大小)48x48像素,所有的大小不同的应该是: 36X36为低密度 48x48的为中等密度 高密度为72x72 96X96为额外的高密度设计图标的详细信息,请参阅图标设计准则,其中包括,如发射器的图标,菜单图标,状态栏图标,选项卡图标,和,各种位图drawables的大小信息。声明为Android 3.2的平板布局对于第一代运行Android 3.0片,宣布平板布局的正确方法是把目录xlarge配置限定符(例如,res/layout-xlarge/)。为了配合其他类型的药片和屏幕尺寸,尤其是7片“的Android 3.2引入了一个新的方式来指定资源用于多个离散的屏幕尺寸,这项新技术是基于量的空间布局需要(如600dp的宽度),而不是试图让你的布局符合广义的大小群体(如大或XLARGE) 。7设计“片的原因是棘手时使用广义的大小群体是一个7”平板技术上是在同一组5“手机(大集团),虽然这两个装置看似接近彼此在大小,空间量为应用程序的UI是显着不同,用户交互的风格,因此,7“和5”屏幕应该不会总是使用相同的布局。要它可能为你来提供这些不同的布局两种屏幕的Android现在,允许你指定你的布局资源的基础上的宽度和/或高度,实际上可用于您的应用程序的布局,在DP单位指定,。例如,你设计的布局,你要使用平板式设备后,你可能会决定,停止以及工作时小于600dp宽屏幕布局。此阈值,从而成为最小尺寸,你需要为您的平板布局。因此,您现在可以指定这些布局资源,应使用至少有宽度为您的应用程序的UI 600dp。您应该把它作为你的最小尺寸挑选的宽度和设计,或考什么是最小的宽度布局的支持,一旦它的完成。注:请记住,所有使用这些新的大小API的数字密度indpendent像素值(DP)和布局方面也应该总是使用DP单位定义,因为你关心的是系统后,可用屏幕空间量屏幕密度的帐户(而不是使用原始像素分辨率)。欲了解更多有关密度indpendent像素的信息,请阅读术语和概念,早在本文件。使用新的大小预选赛表2总结了基于空间的布局上,您可以指定不同的资源配置。这些新的预选赛,为您提供更多的应用程序支持在特定的屏幕尺寸的控制,比传统屏幕大小的组(小,正常,大,和XLARGE)。注意:您指定使用这些限定符的大小是不实际的屏幕尺寸。相反,大小为DP活动的窗口单位,宽度或高度。Android系统可能会使用一些系统UI(如在屏幕的底部或顶部的状态栏系统栏)屏幕,使屏幕上的一些可能不是你的布局。因此,您所申报的大小应明确宣布它的布局提供多大的空间时,系统UI使用任何空间活动的系统帐户需要的大小。还要注意的是,在操作栏被认为是您的应用程序的窗口空间的一部分,你的布局虽然没有声明,因此减少了空间的布局,你必须考虑它在你的设计。表2:新的配置屏幕尺寸(在Android 3.2中引入) qualifers。屏幕配置限定词值说明smallestWidthswdp例如:sw600dpsw720dp屏幕的基本大小,表示最短的可用屏幕区域尺寸。具体来说,设备的smallestWidth最短屏幕的高度和宽度(你也可以认为它是“尽可能最小宽度”屏幕)。您可以使用这个限定,以确保无论在屏幕上的电流方向,您的应用程序至少有DPS的宽度为它的用户界面。例如,如果你的布局要求,其最小尺寸屏幕面积在任何时候都至少有600 DP,那么你可以使用这个qualifer创建布局资源,res/layout-sw600dp/。该系统将利用这些资源,只有当最小的可用屏幕尺寸至少600dp,无论是否600dp一边是用户感知的高度或宽度。smallestWidth是一个固定屏幕大小的设备特性;设备的smallestWidth不会改变屏幕的方向变化时。smallestWidth设备需要考虑屏幕的装饰品和系统UI。例如,如果设备有一些持久的UI元素在屏幕上,沿轴线的smallestWidth空间,系统宣布的smallestWidth比实际屏幕尺寸较小,因为这些屏幕像素不为您的UI。这是一个广义的屏幕大小预选赛(小,正常,大,XLARGE),允许你定义一个离散的数字为有效尺寸为您的UI的替代。使用smallestWidth确定,一般的屏幕尺寸是有用的,因为宽度通常是在设计布局的推动因素。一个UI往往会垂直滚动,但上最小的空间需求水平相当的硬约束。也可用宽度在决定是否使用手机或片剂的多窗格布局的一个窗格布局的关键因素。因此,您可能最关心的尽可能最小的宽度将在每台设备上。可用屏幕宽度wdp例如:w720dpw1024dp指定最小可用宽度在DP单位的资源应定义价值。该系统的相应的宽度值的变化,当屏幕的方向横向和纵向之间切换,以反映当前的实际宽度为您的UI。这往往是有益的,以确定是否使用一个多窗格布局,因为即使是在平板设备,你常常不会想的一样多窗格纵向布局,因为你做景观。因此,你可以使用这个指定布局所需的最小宽度,共同使用的屏幕大小和方向预选赛,而不是。可用屏幕高度hdp例如:h720dph1024dp等等。指定资源应该由定义价值在DP单位的最小屏幕的高度。系统的相应的高度值的变化,当屏幕的方向横向和纵向之间切换,以反映当前的实际高度,为您的UI。wdp是用于定义所需的宽度,而不是使用的屏幕大小和方向预选赛,同样的方式,使用这种方法来定义你的布局所需的高度是非常有用的。然而,大多数应用程序不需要这个限定,考虑用户界面往往垂直滚动多少高度可用从而更加灵活,而宽度更严格的。虽然使用这些限定符可能使用屏幕尺寸组相比,似乎更复杂,它实际上应该是简单一旦你确定你的用户界面要求。当你设计你的UI,你可能关心的主要事情是实际尺寸在您的应用交换机之间的手机风格的用户界面和一个平板式的用户界面,使用多个窗格。此开关的确切点,将取决于您的特殊设计,也许你需要为您的平板布局720dp宽度,也许600dp是不够的,或480dp,或一定数目之间。在表2中使用这些限定,你是在尺寸精确的控制您的布局变化。欲了解更多有关这些大小配置预选赛的讨论,请参阅提供资源文件。配置示例为了帮助您针对不同类型的设备您的设计,这里是典型的屏幕宽度的一些数字: 320dp:一个典型的手机屏幕(240X320 ldpi为320x480 mdpi,480X800 hdpi等)。 480dp:像数(480X800 mdpi)的中间人平板。 600dp:7片(600x1024 mdpi)。 720dp:10“片剂(mdpi 720x1280,800x1280 mdpi等)。从表2中使用的大小预选赛,您的应用程序可以切换不同的布局资源,为手机和使用任何您想要的宽度和/或高度的片。例如,如果600dp数位板布局所支持的最小可用宽度,您可以提供这两套布局: RES /布局/ main_activity.xml为手机 res/layout-sw600dp/main_activity.xml片剂在这种情况下,可用屏幕空间的最小宽度必须为了600dp应用的平板布局。对于其他案件中,你想进一步定制UI来区分大小,如7“和10”片,可以定义额外的最小宽度布局: RES /布局/ main_activity.xml为手机(小于600dp可用宽度) res/layout-sw600dp/main_activity.xml对于7“片(600dp广泛和更大的) 10“片剂对于res/layout-sw720dp/main_activity.xml(720dp广泛和更大的)请注意,例如资源的前两集的使用“最小宽度”swdp DP,指定最小屏幕的双方,不管器件的电流方向。因此,使用swdp是一个简单的方法来指定你的布局的整体屏幕尺寸忽略屏幕的方向。然而,在某些情况下,可能是你的布局重要的是究竟有多大的宽度或高度是目前可用的。例如,如果你有两个片段并排的两个窗格的布局,你可能想使用它,只要在屏幕上提供的宽度至少600dp,设备是否是在横向或纵向。在这种情况下,你的资源,可能看起来像这样: RES /布局/ main_activity.xml为手机(小于600dp可用宽度) res/layout-w600dp/main_activity.xml多窗格(600dp可用宽度或以上的任何屏幕)请注意,第二组是使用“可用宽度”预选赛wdpWwdp。这样,一台设备可实际使用这两种布局,根据屏幕方向(如果可用宽度至少600dp在一个方向,在其他方向小于600dp)。如果可用的高度,是对你的关注,那么你可以做同样hdpDP预选赛。或者,甚至结合wdphdphhdp预选赛,如果你需要真正具体。声明屏幕尺寸支持一旦你实现你的布局,为不同的屏幕尺寸,这是同样重要的是你声明你的清单文件,屏幕应用程序支持。随着屏幕尺寸的新的配置预选赛的Android 3.2引入了新的属性清单元素:android:requiresSmallestWidthDp指定所需的最低smallestWidth。smallestWidth是最短的屏幕空间尺寸(dp单位),必须提供给您的应用程序的UI,也就是说,最短的可用屏幕的两个维度。因此,为了一个被认为是与您的应用程序兼容的设备,该设备的smallestWidth必须等于或大于这个值。(通常情况下,你提供的价值是“最小宽度”的布局支持,无论在屏幕的当前方向。)例如,如果您的应用程序只有一个600dp最小可用宽度的平板式设备是: .但是,如果你的应用程序支持所有屏幕由Android支持的尺寸(小426dp x 320dp),那么你并不需要声明这个属性,因为应用程序需要的最小宽度,最小可能在任何设备上。注意:Android系统并不注意这个属性,所以它不会影响您的应用程序如何在运行时的行为。相反,它是使用如Android Market的服务,使您的应用程序过滤。但是,Android市场目前不支持这个属性用于过滤(基于Android 3.2),所以你应该继续使用其他大小的属性,如果你的应用程序不支持小屏幕。android:compatibleWidthLimitDp这个属性允许你屏幕兼容模式,使指定的最大的“最小宽度”作为用户的可选功能,您的应用程序支持。如果设备的可用屏幕最小的一面是大于你的价值,用户仍然可以安装应用程序,但提供的屏幕兼容模式运行。默认情况下,禁用屏幕兼容模式和布局的调整大小以适应屏幕像往常一样,但可以用一个按钮是在系统栏,允许用户切换和关闭屏幕兼容模式。注:如果您的应用程序的布局,适当调整大小大屏幕,你不需要使用这个属性。我们建议您避免使用这个属性,而更大的屏幕布局调整大小确保按照本文档中的建议。android:largestWidthLimitDp这个属性允许你强制启用屏幕兼容模式指定的最大的“最小宽度”您的应用程序支持。如果设备的可用屏幕最小的一边是大于你的价值在这里,应用程序运行没有办法为用户禁用它在屏幕兼容模式。注:如果您的应用程序的布局,适当调整大小大屏幕,你不需要使用这个属性。我们建议您避免使用这个属性,而更大的屏幕布局调整大小确保按照本文档中的建议。注意:为Android 3.2和更高的发展时,你不应该与上面列出的属性结合使用旧的屏幕大小的属性。同时使用新的属性和旧的大小属性,可能会导致意外的行为。欲了解更多有关这些属性的的详细信息,请按照以上相应的链接。最佳实践支持多个屏幕上的目标是创建一个应用程序可以正常运行和外观上的广义的屏幕配置,由Android支持任何好。本文件的前几节提供有关如何Android以适应您的应用程序的屏幕配置,以及如何你可以自定义在不同的屏幕配置看看你的应用程序的信息。本节提供了一些额外的技巧和技术的概述,有助于确保您的应用规模不同的屏幕配置正确。这里是一个有关如何可以确保您的应用程序不同的屏幕上正确显示快速清单:1. 当指定一个XML布局文件的尺寸wrap_content使用fill_parent,fill_parentdp或DP单位2. 不要使用硬编码在应用程序代码的像素值3. 不要使用AbsoluteLayout(它的过时)4. 供应不同的屏幕密度的替代位图drawables以下部分提供了更多细节。1。使用布局尺寸wrap_content,fill_parent,或DP单位当定义android:layout_widthandroidandroid:layout_heightwrap_contentfill_parentdpandroid:layout_widthandroid:layout_heightandroidandroid:layout_height在XML布局文件的wrap_content“fill_parent“dpDP单位保证该视图是当前设备屏幕上适当的大小。例如,以期layout_width=100dp措施100像素宽中等密度的屏幕上和系统规模高达150像素宽高密度的屏幕上,这样的观点占有大约在同一屏幕上的物理空间。同样,你应该更喜欢的sp(规模无关的像素)来定义文本大小。sp规模因素取决于用户设置和系统规模的大小相同,因为它不dp。2。不要使用您的应用程序代码中硬编码的像素值出于性能的原因,并保持代码的简单,Android系统使用的标准单位表达尺寸或坐标值的像素。这意味着视图的尺寸始终表示代码中使用像素,但总是在当前屏幕上密度。举例来说,如果myView.getWidth()返回10,查看当前屏幕上的10个像素宽,但具有较高的密度屏幕的设备上,返回值可能是15。如果您使用的像素值在应用程序代码工作与当前屏幕密度不预分频位图,你可能需要规模,你在代码中使用,以配合联合国缩放位图源的像素值。如果您的应用程序操纵位图或交易的像素值在运行时,看到以下部分附加密度注意事项。3。不要使用AbsoluteLayout与其他布局的部件,AbsoluteLayout实施奠定了其孩子的意见,这很容易导致用户界面不工作在不同的显示以及使用固定的位置。正因为如此,AbsoluteLayout被废弃了在Android 1.5(API等级3)。您应该使用RelativeLayout,它使用相对定位,奠定了其子意见。例如,您可以指定一个按钮构件应该出现“的权利”一文构件。4。使用大小和密度的特定资源虽然系统规模布局和绘制在当前屏幕上配置资源的基础,您可能需要做出调整,以不同屏幕尺寸的用户界面,并提供不同密度位图优化drawables。这基本上是重申从本文档前面的信息。如果您需要精确控制您的应用程序,看看在不同的屏幕配置,调整布局和位图drawables,在配置特定的资源目录。例如,考虑要中,高密度的屏幕上显示一个图标。简单地建立在两个不同的大小(例如100x100的为中密度和高密度150X150)的图标,并把在适当的目录中的两个变化,使用适当的预选赛: res/drawable-mdpi/icon.png /用于中等密度的屏幕 res/drawable-hdpi/icon.png /用于高密度的屏幕注:如果密度限定符不定义一个目录名,系统假定该目录中的资源旨在为基准介质密度和其他密度适当规模。更多的有效配置预选赛的详细信息,请参阅使用配置预选赛,在本文档前面。附加密度注意事项本节介绍Android的执行有关如何在不同的屏幕密度,以及如何可以进一步控制位图是如何绘制不同密度位图drawables的缩放。本节中的信息不应该对大多数应用中非常重要的,除非你有在您的应用程序中遇到的问题时,不同的屏幕密度,或您的应用程序操纵图形上运行。为了更好地了解如何可以支持多种密度操纵图形在运行时时,你应该了解,该系统有助于确保在以下方面的适当规模为位图:1. 预分频的资源(如位图drawables)系统根据当前的屏幕密度,从您的应用程序使用任何大小或密度的特定资源,显示没有缩放。如果没有资源提供正确的密度,系统加载默认的资源和规模,或需要匹配当前屏幕的密度。该系统假定,除非它们是从一个特定密度的资源目录加载默认资源(那些从没有配置预选赛的目录)是专为基线屏幕密度(mdpi)。预分频,因此,系统当调整当前屏幕密度适当大小的位图。如果你要求一个预分频资源的尺寸,系统将返回值表示缩放后的尺寸。例如,在一个mdpi屏幕上的50x50的像素设计了一个位图缩放到75x75像素在一个hdpi屏幕上(如果没有hdpi替代资源)和系统报告这样的规模。有一些情况下,您可能不希望Android的资源规模。最简单的方法,以避免预分频与资源目录nodpi资源配置限定符。例如: RES /绘制nodpi / icon.png 当系统使用从该文件夹的icon.png位图,它没有它的规模根据当前设备上的密度。2. 自动缩放的像素尺寸和坐标应用程序可以通过设置禁用预分频android:anyDensityanyDensity在清单false假“或Bitmap编程inScaled图false“假“。在这种情况下,系统自动尺度任何绝对像素坐标和像素尺寸值,绘制时间。它这样做是为了确保像素定义屏幕元素仍显示在大约相同的物理尺寸,因为他们将在基线屏幕密度(mdpi)。该系统处理这个比例是透明的应用程序和报告应用程序,而不是物理像素尺寸缩放的像素尺寸。例如,假设一个设备有一个WVGA高密度的屏幕,这是480X800,并作为一个传统的HVGA屏幕大小相同,但它的运行,已禁用预分频应用。在这种情况下,系统将“谎言”的应用程序时,屏幕的尺寸,320x533(屏幕密度近似mdpi翻译)报告查询。然后,应用程序时不绘图操作,如无效,100,100)从矩形(10,10)(,系统转换缩放他们适量的坐标,实际上无效的地区(15.15) (150,150)。这种差异可能会导致意外的行为,如果您的应用程序直接操纵缩放位图,但认为这是一个合理的贸易保持尽可能好的应用程序的性能。如果您遇到这种情况下,阅读下面的部分将DP单位为像素单位。通常情况下,你不应该禁用预分频。支持多个屏幕,最好的办法是遵循描述了上述的基本技巧,如何支持多个屏幕。如果您的应用程序操纵位图,或直接与一些其他的方式在屏幕上的像素交互,您可能需要采取额外的步骤,以支持不同的屏幕密度。例如,如果您响应触摸手势计数手指穿过的像素数量,你需要使用适当的密度无关的像素值,而不是实际像素。在运行时创建的对象缩放位图图5。预缩放和自动缩放位图,比较ApiDemos 。如果您的应用程序创建一个内存中的位BitmapBitmap对象),系统假定默认情况下,该位图是专为基线中等密度的屏幕,并自动尺度的位图绘制时间。该系统适用于“自动缩放Bitmap,位图,位图时有不明密度属性。如果你不为当前设备的屏幕密度帐户,并指定位图的密度属性,自动缩放,可以在缩放文物作为当你不提供替代资源一样的结果。要控制是否在运行时创建Bitmap图缩放或不,你可以setDensity()位图的密度,通过密度DisplayMetrics恒定DisplayMetricsDENSITY_HIGH,DENSITY_LOWDENSITY_HIGH或DENSITY_LOW。如果您要创建一个Bitmap图BitmapFactoryBitmapFactory,如从一个文件或流,BitmapFactory.Options使用BitmapFactory.Options定义位图,因为它已经存在,这就决定了系统是否或如何将它的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽配股东协议合同范本
- 教宗考试设计题及答案
- 幼儿教育行业发展趋势与面试策略分享
- 图书馆管理服务工作计划及资源优化
- 在德国家工作财务管理经验的分享提高职场竞争力的秘诀
- 投资分析师投资案例会
- 外贸企业进出口业务流程优化方案
- (完整版)数学新初一分班质量测试试题经典
- 客服经理客户关系维护方案
- (完整版)新初一分班数学模拟真题试卷及答案解析
- 选必中:贾谊《过秦论》情景默写
- 学堂在线 海上作战与三十六计 期末考试答案
- 2025初二英语阅读理解专项训练100篇
- 餐饮财务会计知识培训课件
- 面部骨雕术专业知识培训课件
- 中国中空玻璃用丁基密封胶项目投资计划书
- 算法治理与人工智能在司法领域的应用与风险控制报告
- 2025年及未来5年中国足浴服务行业发展潜力分析及投资战略咨询报告
- 2025年公安部交管局三力测试题库及答案
- 2025版《简明新疆地方史读本》全册教学设计教案
- 国开《学位论文指南》形考作业1-2答案
评论
0/150
提交评论