`
寻梦者
  • 浏览: 637408 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android屏幕分辨率适配

 
阅读更多

原文地址:http://developer.android.com/guide/practices/screens_support.html

————————下面是翻译—————————我是分割线—————————

       多分辨率支持

  在设计之初,Android系统就被设计为一个可以在多种不同分辨率的设备上运行的操作系统。对于应用程序来说,系统平台向它们提供的是一个稳定的,跨平台的运行环境,而关于如何将程序以正确的方式显示到它所运行的平台上所需要的大部分技术细节,都由系统本身进行了处理,无需程序的干预。当然,系统本身也为程序提供了一系列API,所以在目标平台的分辨率是可以完全确定的情况下,程序也可以精确的控制自身在目标平台上的界面显示方式。

  这个文档会说明系统平台究竟提供了哪些分辨率支持特性,与它们如何在程序中使用的信息。如果你遵循文档中列出的方法,就很容易让你的程序在所有支持的分辨率下都能完美显示。这样你就可以用一个单独的.apk文件,将你的程序发布到所有的平台上。

  如果你已经发布过针对Android 1.5或更早版本平台的程序,你应该仔细阅读这篇文档,然后考虑一下到底如何让自己的老程序可以在拥有各种不同分辨率,并且运行着Android 1.6或更新平台上正常显示。在绝大部分情况下,只需要对程序作出小小的修改就可以达到目的,但你仍然需要尽可能地在各种分辨率的平台上进行测试。
  特别的,如果你有一个已经完成的程序,又想让它可以在超低分辨率的设备(比如320×240)上正确运行,你需要阅读“老程序的更新策略”,那篇文档会告诉你应该怎么做。

术语和概念
屏幕尺寸
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如2.8寸,3.5寸)。
简而言之,Android把所有的屏幕尺寸简化为三大类:大,正常,和小。
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。

屏幕长宽比
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符longnotlong

分辨率
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。

密度
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。

密度无关的像素(DIP
指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:pixels = dips * (density / 160)。举个例子,在DPI240的屏幕上,1DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。


支持的屏幕分辨率范围
1.5及更早版本的Android系统,在设计的时候假定系统只会运行在一种分辨率的设备上——HVGA320×480)分辨率,尺寸为3.2寸。由于系统只能工作在一种屏幕上,开发人员就可以针对那个屏幕来编写自己的程序,而无需去考虑程序在其他屏幕上的显示问题。
但自从Android 1.6以来,系统引入了对多种尺寸、多种分辨率屏幕的支持,以此满足拥有各种配置的新平台的运行需求。这就意味着开发人员在针对Android 1.6或更新版系统开发程序的时候,需要为自己的程序在多种分辨率的屏幕上良好显示作出额外的设计。
为了简化程序员面在对各种分辨率时的困扰,也为了具备各种分辨率的平台都可以直接运行这些程序,Android平台将所有的屏幕以密度和分辨率为分类方式,各自分成了三类:
·三种主要的尺寸:大,正常,小;
·三种不同的密度:高(hdpi),中(mdpi)和低(ldpi)。
如果需要的话,程序可以为各种尺寸的屏幕提供不同的资源(主要是布局),也可以为各种密度的屏幕提供不同的资源(主要是位图)。除此以外,程序不需要针对屏幕的尺寸或者密度作出任何额外的处理。在执行的时候,平台会根据屏幕本身的尺寸与密度特性,自动载入对应的资源,并把它们从逻辑像素(DIP,用于定义界面布局)转换成屏幕上的物理像素。
下表列出了Android平台支持的屏幕中一些比较常用的型号,并显示了系统是如何把它们分类到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系统仍会把它们归入下列的某一个类型中。


低密度(120),ldpi
中密度(160),mdpi
高密度(240),hdpi
屏幕
·QVGA240×320),2.63.0


普通屏幕
·WQVGA240×400),3.23.5
·FWQVGA240×432),3.53.8
·HVGA320×480),3.03.5
·WVGA480×800),3.34.0
·FWVGA480×854),3.54.0
屏幕

·WVGA480×800),4.85.5
·FWVGA480×854),5.05.8


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

分享到:
评论

相关推荐

    android屏幕分辨率适配,静态xml制作工具

    "android屏幕分辨率适配,静态xml制作工具"是专为解决这个问题而设计的一个实用工具,它可以帮助开发者快速生成适用于不同屏幕尺寸的XML布局文件,从而简化适配过程。 这个工具的使用流程通常包括以下步骤: 1. **...

    Android屏幕分辨率适配

    本文将基于提供的链接(http://blog.csdn.net/yan_startwith2015/article/details/52710176)以及“屏幕适配”的主题,深入探讨如何在Android应用中实现有效的屏幕分辨率适配。 首先,我们需要理解Android的屏幕...

    android分辨率适配,xml自动生成工具

    本工具,名为“android屏幕分辨率适配,静态xml制作工具”,专门解决这一问题,帮助开发者快速、有效地生成适用于各种屏幕分辨率的XML布局文件。 在Android系统中,屏幕适配主要通过使用不同密度和尺寸的资源文件夹...

    Android多分辨率适配方案

    Android 多分辨率适配方案 Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的像素宽度及像素...

    Android多分辨率适配

    一、Android屏幕分类 Android系统根据屏幕的尺寸和密度将其分为五类:小屏(small)、正常屏(normal)、大屏(large)、特大屏(xlarge)以及超大屏(xxlarge)。尺寸主要基于屏幕对角线的长度,而密度则是指像素...

    不同屏幕分辨率适配的varlues包

    "不同屏幕分辨率适配的values包"提供了专门针对不同屏幕尺寸和密度的资源文件,以实现更好的用户体验。下面我们将深入探讨这个主题。 首先,Android系统使用`values`目录来存储各种维度的资源,如字符串、颜色、...

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

    本压缩包文件提供了关于如何在Android平台上进行多分辨率适配、判断设备是平板还是手机以及如何等比例缩小图片的方法。以下是这些关键知识点的详细解释: 1. 多分辨率适配: Android系统提供了多种密度独立像素...

    android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip

    - Java是Android的主要开发语言,对于多分辨率适配和设备判断,大部分逻辑都会在Java代码中实现,例如上面提到的检查屏幕尺寸的方法。 - 使用Java的条件语句和逻辑运算符,可以根据设备特性选择合适的布局和资源。...

    不同屏幕分辨率适配的values包.zip

    总的来说,这个“不同屏幕分辨率适配的values包.zip”资源提供了一套完整的解决方案,帮助开发者处理Android设备上多样的屏幕尺寸和分辨率问题。通过合理利用Android的资源目录结构和XML配置,我们可以创建出能够在...

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

    总的来说,Android的多分辨率适配需要综合运用资源文件夹、屏幕尺寸判断、等比例缩放图片以及尺寸常量管理等技术,以确保应用在各类设备上都能提供良好的用户体验。通过熟练掌握这些知识点,开发者能够打造出高质量...

    android多分辨率适配

    在Android开发中,面对各种设备的不同屏幕尺寸和分辨率,实现多分辨率适配是一项重要的任务。Android系统虽然提供了兼容不同屏幕的机制,但开发者仍需要掌握一些策略和技巧来确保应用在各种设备上都能正常显示和良好...

    android多屏幕多分辨率适配

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

    Android应用源码之android多分辨率适配 ,判断平板还是手机,等比例缩小图片-IT计算机-毕业设计.zip

    本项目"Android应用源码之android多分辨率适配,判断平板还是手机,等比例缩小图片"提供了一个很好的学习资源,帮助开发者了解如何在Android平台上进行有效的屏幕适配和图像处理。 首先,Android多分辨率适配主要...

    Android自适应屏幕分辨率

    "Android自适应屏幕分辨率" Android 操作系统中,屏幕分辨率的差异非常大,需要程序自动适应屏幕大小。正确的做法是使用 weight 属性,设置控件的 layout 中的 width、height 为 fill-parent,而不是 wrap-content...

    android获取屏幕分辨率

    首先,我们需要理解Android屏幕分辨率的基本概念。屏幕分辨率是指屏幕上像素点的数量,通常以宽度和高度的像素值表示,如“1920x1080”。Android系统支持多种屏幕尺寸和密度,包括小、正常、大、超大四种尺寸类别,...

    Android 屏幕分辨率详解

    ### Android屏幕分辨率详解 在开发Android应用的过程中,适配不同尺寸和分辨率的设备是一项重要的工作。本文将详细介绍Android系统中的屏幕分辨率概念、不同分辨率密度下的资源文件命名规则以及实际应用场景。 ###...

    android屏幕分辨率

    在Android开发中,屏幕分辨率是决定应用视觉效果和用户体验的关键因素之一。Android系统支持多种不同的屏幕尺寸和分辨率,以适应广泛的设备类型,包括手机、平板电脑以及智能电视等。了解和适配这些不同分辨率对于...

    android分辨率适配源码+apk包

    Android设备的屏幕分辨率可以分为多个级别,如LDPI(低密度)、MDPI(中密度)、HDPI(高密度)、XHDPI(超高清)等,每个级别对应不同的像素密度。Android系统提供了一个基于密度独立像素(DIP或DP)的机制,以确保...

    android 屏幕分辨率问题

    本文将深入探讨Android屏幕适配技术,包括屏幕分辨率分类、Android系统如何处理不同分辨率的资源以及图标设计的最佳实践。 Android系统按照屏幕尺寸和像素密度将屏幕分为三大类:小屏(small)、中屏(medium)和...

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

    这可能是一个URL链接,指向一个网站或资源,用于了解更多关于Android屏幕适配、设备判断或图片处理的教程或资料。 6. **test_other_screen**: 这可能是一个测试目录,包含了针对其他屏幕尺寸或分辨率的测试用例...

Global site tag (gtag.js) - Google Analytics