本文转自:http://www.inandroid.cn/bbs/thread-123665-1-1.html

目前市场上主流的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 超高分辨率(320),xhdpi
小屏幕 QVGA(240 × 320)   480 × 640  
正常屏幕
WQVGA400(240 × 400)
WQVGA432(240 × 432)
HVGA(320 × 480)
WVGA800(480 × 800)
WVGA854(480 × 854)
600 × 1024
640 × 960
大屏幕
WVGA800 (480 × 800)
WVGA854 (480 × 854)

WVGA800 (480 × 800)
WVGA854 (480 × 854)
600 × 1024
   
超大屏幕 600 × 1024
768 × 1024 WXGA
(768 × 1280)800 × 1280

1152 × 1536
1152 × 1920
1200 × 1920
1536 × 2048 
1536 × 2560
1600 × 2560

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

Android的屏幕大小和精度相关推荐

  1. Android自适应屏幕大小和布局

    一:不同的layout  Android手机屏幕大小不一,有480x320, 640x360, 800x480,854x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下 ...

  2. Android自适应屏幕大小和layout布局(转)

    一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layo ...

  3. android 设置屏幕大小,Android 根据屏幕大小设置字体大小

    适应不同Android手机屏幕大小 240*320 320*480 480*800 480*854 540*960 800*1200 800*1280 public static int adjust ...

  4. Android 根据屏幕大小设置字体

    适应不同Android手机屏幕大小 240*320 320*480 480*800 480*854 540*960 800*1200 800*1280 public static int adjust ...

  5. Android根据屏幕大小动态适配GridView

    前言: 最近有个需求上面有图片,下面是个类似九宫格的列表,列表下面还有文字,刚开始只有3列还可以布满,后面改了需求有4列,在小屏手机就没有铺满,第4列看不到了,修改图片和文字长宽也没适配,后面想到利用 ...

  6. Android 获取屏幕大小以及尺寸

    在Android开发中,获取手机屏幕像素的方法有多种.在这里,我仅仅做一个小小的总结,将这些方法分为两类.一类是使用Activity类来获取,另一类便是使用上下文(Context)来获取. /*** ...

  7. android获取软件大小,android获取屏幕大小包括状态栏和软件导航栏的大小

    自API 17(JELLY_BEAN_MR1)以来添加了软件导航,因此我们只需要在API 17及更高版本中包含导航栏的大小. 并注意,当您获得屏幕尺寸时,它基于当前方向. public void se ...

  8. android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小

    大家平时都会调用到Camera 这个API,在设置Camera.Paramera的参数的时候,有一个预览大小.也就是: setPreviewSize(int width, ing height) 这个 ...

  9. android修改屏幕大小设置,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......

    1 主要是通过更改view 的大小来改变视频的大小. 2 在视频初始化时获得视频的高宽都为0 ,这个必须要注意,必须播放后延时 修改view 大小 3 sufaceview 的布局类是 android ...

最新文章

  1. 【胡策08】解题报告
  2. openssl 编译参数选项
  3. MySQL第8天:MySQL索引优化分析之SQL慢
  4. muduo网络库学习(九)日志类Logger和LogStream,将日志信息打印到屏幕
  5. .net 和 java 技术对应关系
  6. 【贪心算法】POJ-1017
  7. 恒大汽车发布公告 拟在科创板上市
  8. android 更新适配器,android – 当适配器数据更改时更新列表视图
  9. 1.React学习笔记----基础模板创建+远程仓库建立
  10. 小白Linux入门之:终端复用器Tmux使用参考
  11. HDU 3339 In Action(最短路+背包)题解
  12. vc6.0c语言如何延迟清屏时间,[转载]关于在vc6.0中输出运动的笑脸问题
  13. 植物大战僵尸的java源代码_植物大战僵尸java源码
  14. LeetCode347. 前 K 个高频元素(含详细解析JAVA实现)
  15. python安装以及插件安装
  16. 小鸡手柄和劲玩X3蓝牙手柄对比
  17. 小米 无线 linux 鼠标,实测小米便携式鼠标2:小巧精致 支持无线双模连接
  18. 多维tensor/numpy array的拼接(np.stack, torch.cat)
  19. android点击按钮静音,android 实现一键静音功能
  20. 怎么sketch画板导出html,sketch符号和导出画板 – Sketch入门UI设计教程

热门文章

  1. C++ stringstream的使用
  2. PDU编码(非常经典)
  3. Godaddy域名解析设置图文教程
  4. 发热内衣既漂亮又保暖的搭配方案
  5. R语言使用table1包绘制(生成)三线表、使用双变量分列构建三线表、双变量分列三线表
  6. js禁止浏览器后退操作
  7. 分享:msdn2万文档英文下载地址
  8. 世界时转化为北京时!!!
  9. 解决ie浏览器发送ajax请求的缓存问题
  10. 基于树莓派opencv—Python的人脸面部特征框选(眼睛和微笑)