2019独角兽企业重金招聘Python工程师标准>>>

看世界杯的空闲 时间,翻译一下 官方文档。分辨率 问题是大家都很关心的(720×480会不会悲剧),而关于这个问题,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把所有的屏幕尺寸简化为三大类:大,正常,和小。
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。

屏幕长宽比
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符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种不同配置的屏幕,但你并不一定需要为它们都提供各自不同的资源。系统已经提供了足够鲁棒(就是在各种恶劣环境下正常工作,对环境变化不敏感)的兼容特性,用于在各种不同的屏幕上良好显示你的程序。这在下面的文档中会详细描述,如果你需要更多的资料,请查看“与屏幕无关的最佳实践”。

转载于:https://my.oschina.net/billowworld/blog/61195

android屏幕分辨率详解 ldpi mdpi hdpi 程序UI自适应 《官方翻译》相关推荐

  1. Android屏幕分辨率详解(VGA、HVGA、QVGA、WVGA、WQVGA)

    这些术语都是指屏幕的分辨率. VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素: HVGA:Half-size VGA:即:VGA的一半,分辨率为480× ...

  2. android屏幕适配详解

    android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...

  3. android 电脑屏幕尺寸,Android屏幕计量单位详解 -电脑资料

    1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多, 2.dip或dp(与密度无关的像素):一个基于density的抽象单位,这个和设备硬件有关,通 ...

  4. Android屏幕适应详解(一)

    一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...

  5. Android屏幕锁定详解(一)

    相信手机屏幕的锁定大伙熟悉吧?今天小马就找个时间写下对屏幕锁的控制及学习,希望能帮助朋友们对屏幕锁更加了解,以备不时之用,九宫格 PIN密码 密码锁屏等的小马会有屏幕锁二中详细介绍,大家看来看这篇简单 ...

  6. android屏幕适配无效_android屏幕适配详解

    二.术语和概念 四种屏幕尺寸分类:: small, normal, large, and xlarge 四种密度分类: ldpi (low), mdpi (medium), hdpi (high), ...

  7. 《Android游戏开发详解》一3.6 图形

    本节书摘来异步社区<Android游戏开发详解>一书中的第3章,第3.6节,作者: [美]Jonathan S. Harbour 译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区 ...

  8. 《Android游戏开发详解》——第3章,第3.6节图形

    本节书摘来自异步社区<Android游戏开发详解>一书中的第3章,第3.6节图形,作者 [美]Jonathan S. Harbour,更多章节内容可以访问云栖社区"异步社区&qu ...

  9. Android常用计量单位详解(px,in,mm,pt,dp,dip,sp)

    Android常用计量单位详解(px,in,mm,pt,dp,dip,sp) 在传统PC软件开发中经常以像素为单位设计计算机用户界面.例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素, ...

最新文章

  1. Tomcat windows下安装
  2. HBase在阿里搜索中的应用实践
  3. MongoDB资料大全
  4. Centos7.x下Nginx安装及SSL配置与常用命令
  5. 2017年上半年最受关注度的几大免费OA品牌
  6. Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子
  7. idea热部署devtools
  8. magento memcache缓存配置
  9. Codeforces 1163A - Eating Soup
  10. 【Oracle】创建用户
  11. 【渝粤教育】国家开放大学2018年春季 3722-21T燃气输配工程 参考试题
  12. 京西古道,王平到圈门的穿越
  13. 在网页输入框输入角标_这个免费插件能帮我们把Excel内容快速填充到网页表单?...
  14. 计算机windows8黑屏怎么办,win8电脑黑屏只有鼠标如何处理?开机黑屏只有鼠标处理办法...
  15. 随机生成一注双色球号码
  16. 业务层战略制定的思路和方法_如何确保公司年度战略目标落地—打造战略执行的方法论...
  17. UWB高精度定位落地:中大型区域动态人员精细网格化管理
  18. 这几个拍图读字软件你见过吗?附赠使用方法
  19. 笔记本计算机的清洁保养知识,笔记本电脑保养小知识
  20. 1788 数量的类模板

热门文章

  1. MyBatis复习笔记6:MyBatis缓存机制
  2. Java项目:零食商城系统(java+SSM+jsp+MySQL+EasyUI)
  3. iOS解决键盘阻挡输入框
  4. Xcode消除编译器警告
  5. 悬浮球 / 悬浮按钮 / 辅助按钮
  6. 网络工程师课程---4、网络层(网关是什么)
  7. 互动网计算机频道图书7日销售排行(05.20-05.26)
  8. python pexpect
  9. cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp
  10. 【Android 基础】Animation 动画介绍和实现