Android关于布局、设计的常识【整理】

泡在网上的日子 / 文 发表于2013-07-11 00:02 次阅读 布局

     Android多型号的设备以及形状的诸多因素,让其设计感觉像是一场艰苦的战斗。其神秘的文档使得设计和生产在一开始就显得很难。在网上找有关Android设计的网络资源,你会发现很少有帮助的东西。


     幸运的是,Android现在已经开始着手解决有关多种设备和屏幕尺寸的问题,而且设备制造商们也正慢慢达到标准,并最终降低其复杂性。


     Android智能手机所支持屏幕的基准是T – Mobile G1——Android平台的第一款面世设备,其配备了320 × 480像素的HVGA屏幕。HVGA表示“半尺寸影像图形数组”(或一半大小的VGA),是目前智能手机的标准显示大小。iPhone 3GS,3G和2G都使用这一相同的配置。


     为简单起见,Android将屏幕尺寸(屏幕从左上角到右下角的对角线长度)分为四个级别:小,正常,大和超大。


两款普通的Android智能手机尺寸


     320 × 480被认为是Android屏幕的“正常”尺寸。至于“超大”的,想象一下平板电脑。然而,当今最流行的Android智能手机配备的是WVGA(即宽VGA)800+×480像素的高清显示器。


从Android SDK中的仿真器样机获得的各种屏幕配置图



     显示器尺寸不同对于那些想创建单个尺寸适合所有的布局的设计师来所真算是非常具有挑战性的。最好的办法是设计一套布局为320 × 480(基准),另一套为320 ×533(可视为“大”尺寸屏幕)。虽然这给设计师和开发人员的工作带来额外负担,如摩托罗拉Droid和HTC Evo等稍大一点手机所需的更大尺寸屏幕,可能需要在基准布局上做一些修改已更好地利用多余的空间。


     切图需要两套分辨率的图,480X320,800X480 。icon需要切三种分辨率的图 320X240,480X320, 800X480。


关于网点密度(Screen Densities):


开发人员一般不考虑屏幕的分辨率,而是它的密度。以下是开发人员指南(Developers Guide)里提到的Android对这些内容的定义:


1.分辨率(Resolution)

  屏幕物理像素的总和。



2.网点密度

  屏幕物理面积内所包含的像素数,通过以DPI(每英寸点数)来计量。


3.密度无关像素(Density-independent pixel , DP)

     这是一个虚拟的像素单位,定义布局的UI,在为以密度无关(density-independent)的方式表达布局的维度和位置,而定义布局的时候,会使用到这个概念。密度无关像素就相当于160 dpi屏幕上的一个物理像素,这对“中等”密度的屏幕系统来说算是基准密度。在运行时,系统根据实际使用中的屏幕密度处理任何必要的DP单位的换算。DP单位和屏幕像素的转化公式很简单:像素= DP*(DPI/160)。例如,对于一个240 dpi的屏幕,1个物理像素等于1.5DP。


     在定义应用程序的UI时,通常使用DP单位,以确保UI在不同密度的屏幕上得以正确显示。


     位图的要求和准备网页打印图形差不多。如果您有打印经验,你就会知道,一个72PPI(每英寸所拥有的像素数)的图像在放大打印时会显得非常像素化和模糊。相反,你需要根据矢量图来重做图像或使用高解析度照片,然后将文件的分辨率设置成大约为300PPI,这样就才能在不牺牲图像质量的条件下打印。Android的屏幕密度的工作原理也是如此,除非我们只想改变图像的大小而不改变文件的分辨率(如标准72 PPI就可以)。


     要调整不同的设备屏幕密度,我们需要在四个密度大小之间按照3:4:6:8缩放比例。新建一个android工程你会发现不同DPI文件夹下的icon大小从低到高分别为 36X36 48X48 72X72 ,确实是按照该比例缩放的。


收藏 赞 (0) 踩 (0)
上一篇:android隐藏底部虚拟键Navigation Bar实现全屏
安卓4.1之后为全虚拟键操作,和actionbar对应,底部的虚拟键菜单称为Navigation Bar。 Sumsung Galaxy Nexus 屏幕分辨率为 1280X 720,但通常的应用都会显示Navigation Bar(Back 键,Home 键等),如下图所示: 但我注意到Youtube应用在问触摸事件时,会自
下一篇:对android setContentView()的认识
setContentView(int) 用在初始化Activity的oncreate()中, 作用是给页面指定布局文件资源 。 setContentView(View view) Android如何绘制视图: 当Activity获得焦点时,其就会被要求绘制其布局,android框架会处理具体的绘制功能,但是其布局的继承关系的根