`
mpqi
  • 浏览: 78214 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Android的屏幕大小和精度

阅读更多

本文转载自:http://blog.csdn.net/orietech/article/details/6637872

 

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


 

p.s.

    1)  为了模拟此配置中,指定一个自定义的160精度时创建的AVD,使用WVGA800或WVGA854皮肤。
    2)  为了模拟此配置中,指定120个自定义的精度,当创建的AVD,使用WVGA800或WVGA854皮肤。

分享到:
评论

相关推荐

    Android屏幕大小和精度

    在Android系统中,屏幕大小...总之,理解并掌握Android屏幕大小和精度的相关概念,对于开发出高质量、兼容性强的应用至关重要。通过合理的资源管理和布局设计,开发者可以为所有Android用户提供一致且优秀的视觉体验。

    APP开发屏幕适配原理及实现方法(Android、iOS)

    * Android屏幕适配方案使用屏幕尺寸和分辨率来描述屏幕的精度。 * 在Android中,屏幕密度是用来描述屏幕的精度的概念。 知识点七:iOS屏幕适配方案 * iOS屏幕适配方案使用缩放倍率来描述屏幕的精度。 * 在iOS中,...

    基于android 实现截取 内容超过屏幕大小的长图

    在Android平台上,开发一款能够截取超过屏幕大小的长图是一项常见的需求,特别是在社交媒体分享、应用内截图或者游戏截图场景中。本知识点将详细介绍如何在Android中实现这一功能。 首先,我们要理解Android屏幕...

    SVG转Android VectorDrawable工具

    总的来说,"SVG转Android VectorDrawable工具"提供了一种方便快捷的方式,帮助开发者将SVG图形资源引入Android项目,从而实现更高效的图形管理和应用性能优化。在使用过程中,理解SVG和VectorDrawable的区别及转换...

    Android vs iPhone icon设计指南.doc

    2. 自动定义像素尺寸和位置:若程序不支持多种精度屏幕,系统会调整元素的像素尺寸和位置,以保持在不同精度屏幕上的相对大小。 3. 兼容更大尺寸的屏幕:通过设置`supports-screens`元素,系统在超出支持范围的屏幕...

    简单谈谈我的Android屏幕适配之路

    Android 屏幕适配详解 Android 屏幕适配是 Android 开发者面临的头疼问题之一。想要自己的 App 在不同的设备上面都有一个比较好的显示效果,就必须做好相应的屏幕适配。下面将详细介绍 Android 屏幕适配的知识点。 ...

    android计算器

    6. **布局响应式设计**:为了适配不同尺寸和方向的屏幕,Android应用通常采用相对布局(RelativeLayout)或约束布局(ConstraintLayout)。这两种布局可以动态调整控件的位置,确保在不同设备上都有良好的显示效果。...

    Android 手机屏幕适配解决办法

    总结来说,Android屏幕适配是一个多层面的工程,涉及布局设计、资源管理以及代码编写。开发者需要充分理解屏幕尺寸、分辨率和像素密度的概念,结合Android提供的工具和机制,灵活运用各种适配策略,以实现应用在各种...

    Android-用于涂鸦的自定义AndroidView

    例如,可以使用硬件加速,或者根据屏幕大小适当减少绘制的精度。 在提供的`DoodleView-master`压缩包中,很可能包含了实现以上功能的源代码。通过查看源码,我们可以学习到如何处理触摸事件、优化绘图性能以及如何...

    安卓(Android)平台用于SVG文件处理的开源框架

    在实际应用中,例如,开发者可以使用svg-android创建一个SVG图标库,根据用户操作动态改变图标的大小、位置或角度;或者在地图应用中,使用SVG绘制高精度的地图元素,确保在任何分辨率下都能保持清晰。同时,由于svg...

    Android实现人脸识别

    可以使用GPU加速推理过程,或者调整模型大小和精度以平衡识别效果和计算需求。 8. **隐私和安全**:在开发人脸识别应用时,务必注意用户隐私。不要在未经用户许可的情况下收集、存储或传输面部数据。遵守相关的法规...

    Android OpenCv 人脸检测

    3. 阈值设置:调整检测的阈值,平衡检测精度和速度。 4. 帧率控制:根据设备性能,适当降低预览帧率,避免过度消耗资源。 **实时显示** 检测结果需要实时显示在界面上,可以使用`Canvas`在`SurfaceView`上绘制矩形...

    Android手机屏幕px与dp互转的工具类

    在Android开发中,屏幕适配是一个重要的环节,特别是在处理不同尺寸和密度的设备时。px(像素)和dp(设备独立像素,也称为dip)是两个常用的单位,它们在屏幕上表示尺寸的方式有所不同。px是绝对单位,直接对应屏幕...

    Android Box2d 例子

    开发者可能需要调整`FixedStep`的大小以平衡性能和精度。 2. **优化**:未优化的Box2D代码可能在处理大量Body或复杂碰撞时变得缓慢。可以通过减少不必要的Body和Fixture、优化形状、使用传感器代替物理碰撞等方式...

    android刻度尺

    还要考虑到高分辨率和低分辨率设备上的显示效果,可能需要使用VectorDrawable或者SVG图片以确保图形在不同密度屏幕上不失真。 接着,**传感器利用**对于一个功能完备的刻度尺应用来说,是提高精度的关键。Android...

    android放大镜功能源码.zip

    8. **性能优化**:对于大屏幕或者高分辨率的设备,处理放大镜可能会消耗大量资源,因此需要考虑优化,如只对放大区域进行渲染,避免全屏渲染,或者使用低精度的纹理坐标等。 9. **兼容性**:确保放大镜功能在不同...

    android 自定义星级评论可配置大小;数量,显示半星;小数星

    本案例聚焦于一个自定义的星级评论视图,该视图允许用户以小数精度进行评分,并且可以设置是否响应触摸事件以及调整星星和控件的大小及数量。下面将详细解释这些知识点。 首先,我们要理解的是“可显示小数级别的...

    Android UI设计指南

    存储这些资源时,遵循屏幕大小和密度的资源目录规则,确保多密度支持。 4. **设计师建议** - 使用矢量编辑工具如Adobe Photoshop,以便于缩放和保持清晰度。 - 按字母顺序命名文件,同一类型的图标使用相同的前缀...

    Android bitmap图片压缩工具类

    在Android开发中,Bitmap对象是处理图像的主要方式,但它们可能会消耗大量内存,尤其是在处理大图或高分辨率图片时。为了优化性能并防止因内存不足引发的“OutOfMemoryError”,开发者通常需要对Bitmap进行压缩。...

    Android Bitmap 处理示例

    在Android开发中,Bitmap是用于表示图像数据的核心类,它在UI显示和图像处理中扮演着重要角色。然而,由于Bitmap对象通常占用大量的内存,不当的处理可能导致内存溢出(Out Of Memory)问题,因此对Bitmap进行高效...

Global site tag (gtag.js) - Google Analytics