`
zhanglibin1986
  • 浏览: 380715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android的多分辨率支持

阅读更多

在设计之初,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平台支持的屏幕中一些比较常用的型号,并显示了系统是如何把它们分类到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系统仍会把它们归入下列的某一个类型中。

 

 

 


低密度( 120), ldpi
中密度( 160), mdpi
高密度( 240), hdpi
屏幕
· QVGA 240× 320), 2.6 3.0


普通 屏幕
· WQVGA 240× 400), 3.2 3.5
· FWQVGA 240× 432), 3.5 3.8
· HVGA 320× 480), 3.0 3.5
· WVGA 480× 800), 3.3 4.0
· FWVGA 480× 854), 3.5 4.0
屏幕

· WVGA 480× 800), 4.8 5.5
· FWVGA 480× 854), 5.0 5.8

 

如上表所示,所有分辨率的屏幕,都围绕在基准屏幕 周围,而基准屏幕在分类中,为“正常”尺寸,与“中”密度。之所以用 HVGA屏幕作为基准屏幕,是因为所有针对 Android 1.5或更早的程序都是针对这片屏幕所写的(因为只支持这一片),比如 T-Mobile G1
虽然系统支持上面 9种不同配置 的屏幕,但你并不一定需要为它们都提供各自不同的资源。系统已经提供了足够鲁棒(就是在各种恶劣环境下正常工作,对环境变化不敏感)的兼容特性,用于在各 种不同的屏幕上良好显示你的程序。这在下面的文档中会详细描述,如果你需要更多的资料,请查看“与屏幕无关的最佳实践”。

分享到:
评论

相关推荐

    Android多分辨率解决方案

    在Android开发中,面对众多不同分辨率的设备,开发者必须采取有效的多分辨率解决方案,以确保应用程序在各种设备上都能提供良好的用户体验。以下将详细介绍Android多分辨率适应的策略。 1. **资源目录结构** ...

    Android多分辨率适配

    Android 5.0(API 21)引入了VectorDrawable,支持矢量图形,可以在不同分辨率下保持清晰,无需为每个密度准备多个图像文件。 总结,Android多分辨率适配是一项复杂但必要的任务,涉及到资源文件的组织、布局设计、...

    玩转Android多分辨率规格的界面设计

    玩转Android多分辨率规格的界面设计 随着移动互联网的飞速发展,Android系统因其开放性和灵活性,成为全球最受欢迎的移动操作系统之一。然而,这也带来了挑战,尤其是对于界面设计师而言,如何应对Android设备屏幕...

    android 主流分辨率及对应机型

    ### Android主流分辨率及对应机型详解 #### 一、引言 在移动互联网时代,随着智能手机的普及和技术...未来,随着技术的不断进步,更高分辨率的屏幕将会被广泛应用到更多的智能手机中,为用户带来更加震撼的视觉享受。

    android多屏幕多分辨率适配

    在Android开发中,面对各种不同尺寸和分辨率的设备,如何实现多屏幕多分辨率的适配是开发者必须掌握的关键技能。Android系统提供了丰富的机制来帮助我们处理这个问题,使得应用能够在各种屏幕上正常显示,提供良好的...

    Android多分辨率规格的界面设计

    "Android多分辨率规格的界面设计"是开发者必须掌握的关键技能,它涉及到像素密度、屏幕尺寸、布局适配等多个方面。下面将详细探讨这一主题。 1. 像素密度(Density Independent Pixel, dp) Android系统使用dp作为...

    android获取屏幕分辨率

    Android系统支持多种屏幕尺寸和密度,包括小、正常、大、超大四种尺寸类别,以及低、中、高、超高四种密度类别。开发者需要确保应用能在这些不同的配置下正常运行。 获取屏幕分辨率的方法主要涉及Android的`...

    android屏幕分辨率

    Android系统支持多种不同的屏幕尺寸和分辨率,以适应广泛的设备类型,包括手机、平板电脑以及智能电视等。了解和适配这些不同分辨率对于开发者来说至关重要。 1. **DPI(dots per inch,每英寸像素数)**: ...

    android应用自适应多分辨率的解决方法

    本文将深入探讨如何实现Android应用的自适应多分辨率设计,涵盖布局、资源管理和配置文件的优化策略。 ### 一、布局资源目录的合理规划 Android系统支持开发者为不同屏幕尺寸和密度创建特定的布局资源文件。这是...

    探究Android的多分辨率支持以及各种类型图标尺寸大小.doc

    总之,Android的多分辨率支持和图标尺寸大小管理是其跨设备兼容性的重要组成部分。开发者需了解这些概念,以便创建能在各种Android设备上无缝运行的应用程序。通过正确使用DIP、适应性布局和密度特定的资源,可以...

    Android多分辨率多密度下UI适配方案

    在Android平台上,由于设备的多样性,开发者经常面临一个挑战:如何让应用的用户界面(UI)在不同分辨率和像素密度的设备上都能保持良好的显示效果。Android系统采用了一套灵活的解决方案来处理这个问题,主要包括...

    Android高级应用源码-android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar

    本资源“Android高级应用源码-android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar”正是针对这些问题提供了相应的解决方案。 首先,我们来探讨Android多分辨率适配。Android系统支持多种屏幕尺寸,如小屏...

    安卓Android源码——android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar

    本资源“安卓Android源码——android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar”提供了解决这些问题的具体代码示例。下面将详细解释其中涉及的知识点。 1. 多分辨率适配: 安卓系统为了适应各种屏幕...

    Android屏幕分辨率适配

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备有着广泛的屏幕尺寸和分辨率。本文将基于提供的链接(http://blog.csdn.net/yan_startwith2015/article/details/52710176)以及“屏幕适配”的主题...

    android分辨率适配源码+apk包

    总之,"android分辨率适配源码+apk包"是一个宝贵的教育资源,它涵盖了Android开发中的重要适配技术,可以帮助开发者提升在多分辨率环境下的应用开发能力。通过深入研究源码和实践应用,开发者可以更好地理解和掌握...

    在android中,同样一张图片在不同的分辨率中有不同的大小

    在Android系统中,由于设备的多样性,同一张图片在不同分辨率的屏幕上显示时,为了保持清晰度和视觉效果,往往需要有不同的尺寸版本。这涉及到Android的资源适配机制,包括密度独立像素(DP, Density Independent ...

    android 获取屏幕硬件分辨率方法

    然而,这些值可能不会直接对应于屏幕的实际分辨率,因为Android支持多种屏幕密度。 `dm.density`是一个浮点数,表示屏幕的密度因子,它通常基于160dpi(每英寸160个像素,也称为MDPI或中等密度)的标准。例如,如果...

    android程序界面自动适应屏幕分辨率例子

    Android支持在不同的资源目录下存放特定屏幕尺寸和密度的资源文件。例如,`res/layout-sw600dp`用于7英寸平板,`res/drawable-mdpi`用于中等密度的设备。在"HelloWord"项目中,可能会有多个布局文件夹,每个对应一...

    Android 安装包分辨率修改教程.docx

    ### Android安装包分辨率修改教程详解 #### 一、安装与配置JDK 为了能够顺利进行Android安装包的分辨率修改操作,首先需要确保计算机上已经安装了JDK,并且正确设置了环境变量。 **1. 下载并安装JDK** 访问...

Global site tag (gtag.js) - Google Analytics