多分辨率支持
在设计之初,Android系统就被设计为一个可以在多种不同分辨率的设备上运行的操作系统。对于应用程序来说,系统平台向它们提供的是一个稳定的,跨平台的运行环境,而关于如何将程序以正确的方式显示到它所运行的平台上所需要的大部分技术细节,都由系统本身进行了处理,无需程序的干预。当然,系统本身也为程序提供了一系列API,所以在目标平台的分辨率是可以完全确定的情况下,程序也可以精确的控制自身在目标平台上的界面显示方式。
这个文档会说明系统平台究竟提供了哪些分辨率支持特性,与它们如何在程序中使用的信息。如果你遵循文档中列出的方法,就很容易让你的程序在所有支持的分辨率下都能完美显示。这样你就可以用一个单独的.apk文件,将你的程序发布到所有的平台上。
如果你已经发布过针对Android 1.5或更早版本平台的程序,你应该仔细阅读这篇文档,然后考虑一下到底如何让自己的老程序可以在拥有各种不同分辨率,并且运行着Android 1.6或更新平台上正常显示。在绝大部分情况下,只需要对程序作出小小的修改就可以达到目的,但你仍然需要尽可能地在各种分辨率的平台上进行测试。
特别的,如果你有一个已经完成的程序,又想让它可以在超低分辨率的设备(比如320×240)上正确运行,你需要阅读“老程序的更新策略”,那篇文档会告诉你应该怎么做。
术语和概念
屏幕尺寸
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如2.8寸,3.5寸)。
简而言之,Android把所有的屏幕尺寸简化为三大类:大,正常,和小。
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。
屏幕长宽比
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符long和notlong。
分辨率
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。
密度
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。
密度无关的像素(DIP)
指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:pixels = dips * (density / 160)。举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。
支持的屏幕分辨率范围
1.5及更早版本的Android系统,在设计的时候假定系统只会运行在一种分辨率的设备上——HVGA(320×480)分辨率,尺寸为3.2寸。由于系统只能工作在一种屏幕上,开发人员就可以针对那个屏幕来编写自己的程序,而无需去考虑程序在其他屏幕上的显示问题。
但自从Android 1.6以来,系统引入了对多种尺寸、多种分辨率屏幕的支持,以此满足拥有各种配置的新平台的运行需求。这就意味着开发人员在针对Android 1.6或更新版系统开发程序的时候,需要为自己的程序在多种分辨率的屏幕上良好显示作出额外的设计。
为了简化程序员面在对各种分辨率时的困扰,也为了具备各种分辨率的平台都可以直接运行这些程序,Android平台将所有的屏幕以密度和分辨率为分类方式,各自分成了三类:
·三种主要的尺寸:大,正常,小;
·三种不同的密度:高(hdpi),中(mdpi)和低(ldpi)。
如果需要的话,程序可以为各种尺寸的屏幕提供不同的资源(主要是布局),也可以为各种密度的屏幕提供不同的资源(主要是位图)。除此以外,程序不需要针对屏幕的尺寸或者密度作出任何额外的处理。在执行的时候,平台会根据屏幕本身的尺寸与密度特性,自动载入对应的资源,并把它们从逻辑像素(DIP,用于定义界面布局)转换成屏幕上的物理像素。
下表列出了Android平台支持的屏幕中一些比较常用的型号,并显示了系统是如何把它们分类到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系统仍会把它们归入下列的某一个类型中。
如上表所示,所有分辨率的屏幕,都围绕在基准屏幕周围,而基准屏幕在分类中,为“正常”尺寸,与“中”密度。之所以用HVGA屏幕作为基准屏幕,是因为所有针对Android 1.5或更早的程序都是针对这片屏幕所写的(因为只支持这一片),比如T-Mobile G1。
虽然系统支持上面9种不同配置的屏幕,但你并不一定需要为它们都提供各自不同的资源。系统已经提供了足够鲁棒(就是在各种恶劣环境下正常工作,对环境变化不敏感)的兼容特性,用于在各种不同的屏幕上良好显示你的程序。
- 大小: 41.2 KB
分享到:
相关推荐
总的来说,理解并运用上述代码和概念,开发者可以有效地适应Android平台上各种屏幕尺寸和密度的设备,为用户提供更加友好的界面体验。这个代码段是Android应用开发中的基础知识,对于任何涉及到界面布局和适配的...
"Android屏幕尺寸适配资源生成"就是这样一个工具,它帮助开发者自动化地生成适应不同屏幕尺寸的资源。 在Android中,屏幕适配主要通过以下几种方式实现: 1. **密度独立像素(Density Independent Pixel, dp)**:...
Android屏幕适配尺寸生成类,直接导入工程运行,即可生成Android中屏幕的个尺寸下的values文件,非常使用!
- 为了适配不同屏幕尺寸,可以使用Android的布局资源目录(如`layout-sw600dp`,`layout-sw720dp`),这些目录会根据设备的可用宽度(Smallest Width)加载相应的布局。 4. **实际应用** - 图片适配:根据屏幕...
编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。
在Android平台上开发应用程序时,确保用户界面(UI)在各种屏幕尺寸和分辨率上都能良好运行是至关重要的。Qt是一个跨平台的应用程序开发框架,它允许开发者使用C++编写代码,并在多个操作系统上运行,包括Android。...
Android自适应屏幕布局是指在Android系统中实现屏幕自适应的布局方式,通过使用不同的布局文件和样式可以使屏幕布局适应不同的屏幕尺寸和方向。下面是关于Android自适应屏幕布局的详细知识点: 一、布局文件 在...
1. **Android屏幕尺寸分类**: Android系统将屏幕尺寸分为小型(small)、正常(normal)、大型(large)和超大型(xlarge),而屏幕密度则分为低密度(ldpi)、中密度(mdpi)、高密度(hdpi)、超高密度(xhdpi)等。开发者需要...
首先,Android屏幕尺寸的单位通常为像素(px),但为了进行适配,我们通常会关心逻辑像素(dp)或者屏幕密度(dpi)。Android系统提供了多种方法来获取这些信息。 1. 获取屏幕宽度和高度(像素): 可以通过`...
在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备拥有各种各样的屏幕尺寸、分辨率和像素密度。为了确保应用程序在所有设备上都能提供一致且良好的用户体验,开发者需要掌握有效的屏幕适配策略。...
在Android开发中,屏幕适配是一项重要的任务,尤其是在全球用户使用的设备种类繁多,屏幕尺寸、分辨率各异的情况下。"Android autolayout"是Google推出的一种解决屏幕适配问题的方案,它旨在帮助开发者创建能够自动...
Android SDK模拟机的尺寸 Android 的屏幕尺寸
本篇文章将深入探讨Android屏幕适配中的smallestWidth维度,以及如何使用对应的尺寸文件来优化应用界面。 首先,了解"smallestWidth"的概念。smallestWidth是指设备屏幕在横屏或竖屏状态下可用来显示内容的最小宽度...
在Android开发中,获取手机屏幕尺寸是常见的需求,例如为了适配不同屏幕大小的设备,进行界面布局的设计。本代码段提供了实现这一功能的方法。以下是关于Android获取屏幕尺寸的详细知识: 1. **屏幕尺寸与分辨率** ...
在Android系统中,屏幕大小...总之,理解并掌握Android屏幕大小和精度的相关概念,对于开发出高质量、兼容性强的应用至关重要。通过合理的资源管理和布局设计,开发者可以为所有Android用户提供一致且优秀的视觉体验。
首先,我们要了解Android屏幕尺寸相关的概念。Android系统将屏幕尺寸分为小(small)、正常(normal)、大(large)和特大(xlarge)四种类型,基于屏幕对角线的物理尺寸。此外,屏幕密度(density)也是一个关键参数...
在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率。本资源包"Android屏幕适配资源"专注于解决这一问题,提供了values资源,能够帮助开发者轻松实现不同屏幕尺寸...
在Android开发中,测量手机屏幕尺寸是一项基础但重要的工作,尤其在设计适配不同设备的应用时。本项目名为“MeasureScreemSize”的Demo,旨在帮助开发者获取屏幕尺寸信息,以便区分设备是手机、平板还是电子书等。...
综上所述,Android UI适配涉及多个层面,包括理解屏幕尺寸和密度,使用适配策略,以及充分利用各种布局工具。只有全面考虑这些因素,才能确保应用在各种设备上都能呈现出一致且优秀的用户体验。