会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 57自学网———旗下安卓自学网站专注Android系统开发教程!
当前位置:主页 > 图形图像 > 像素/屏幕/分辨率 > 正文

Android的多分辨率支持以及各种类型图标尺寸大小 详解

时间:2016-08-02 22:16 来源:网络整理 作者:安卓自学网 阅读:
术语和概念  & Z, `) @3 R: I* F! `7 u

屏幕尺寸  + z# S; b" i/ Y4 E
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如 2.8寸, 3.5寸)。 
简而言之, Android把所有的屏幕尺寸简化为三大类:大,正常,和小。 
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。  6 V* n& h' U0 s& [' }8 z
1 f% \2 _& [% m' [
屏幕长宽比 
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符long和 notlong。 

分辨率  + Q$ B2 `- g. c& c
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在 Android系统中,程序一般并不直接处理分辨率。  ; F, J$ [3 ^$ E, G8 Y! d
" _& F7 k" y2 x/ @& F
密度  ! ^9 O" r2 k5 x
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。 
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多 ——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会 显得很大,但在高密度的屏幕上则会显得很小。  1 \  m9 Z& s8 {

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


图表形式

术语

 

说明

 

备注

 

Screen size(屏幕尺寸)

 

指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸

 

摩托罗拉milestone手机是3.7英寸

 

Aspect Ratio(宽高比率)

 

指的是实际的物理尺寸宽高比率,分为long和nolong

 

Milestone是16:9,属于long

 

Resolution(分辨率)

 

和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数

 

Milestone是854*480

 

DPI(dot per inch)

 

每英寸像素数,如120dpi,160dpi等,假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

 

可以反映屏幕的清晰度,用于缩放UI的

 

Density(密度)

 

屏幕里像素值浓度,resolution/Screen size可以反映出手机密度

 

/ r8 ?0 `7 H& X# k2 @8 e( u2 d

 

Density-independent pixel (dip)

 

指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160

 

' V4 z$ G- w- i- b" o

 

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

) _- }& S; Y- R  b

! X/ D) {2 ?+ l& h  L9 Y0 c  L
' S$ B- Y& F, o* X
" ?/ d" f7 e4 X/ v$ J5 E* K
  低密度( 120), ldpi   中密度( 160), mdpi   高密度( 240), hdpi  
小 屏幕   · QVGA( 240× 320),2.6~ 3.0寸  
 
  " u" Z: z# A- h1 T2 ], U& \
1 w7 I) L0 |5 g. u
 
普通 屏幕   · 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寸 6 X% Y# V% K  s, R; Y3 l9 [
· FWVGA( 480×854), 3.5~ 4.0寸
 
大 屏幕  
 
  · WVGA( 480× 800),4.8~ 5.5寸 
· FWVGA( 480×854), 5.0~ 5.8寸
 
3 F0 \1 o1 P+ V; U- P1 ^7 _
 

(责任编辑:www.57zxw.com)

顶一下
(0)
0%
踩一下
(0)
0%