刚刚接手的产品需要从iOS版继续开发Android版。Android的各种五花八门的分辨率确实是个很麻烦的事情,将iOS的元素修改为Android的相应尺寸,UI童靴没有太多Android的设计经验,而以前都是配合的UI直接搞定的,所以干脆找了些文章自己研究下,以下是收集的有用信息。记录下来方便查看备用:

Android智能手机及显示屏尺寸

启动任何数字设计项目之前,首先必须先了解硬件。对于iOS应用程序来说,那是iPhone和iPod Touch。而Android,涉及到几十种设备和制造商。从哪里开始呢?

Android智能手机所支持屏幕的基准是T Mobile G1——Android平台的第一款面世设备,其配备了320 × 480像素的HVGA屏幕

HVGA表示“半尺寸影像图形数组”(或一半大小的VGA),是目前智能手机的标准显示大小。iPhone 3GS 3G 2G都使用这一相同的配置

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



两款普通的Android智能手机尺寸(图片来源于 Google I/O 2010>

320 × 480被认为是Android屏幕的“正常”尺寸。至于“超大”的,想象一下平板电脑。然而,当今最流行的Android智能手机配备的是WVGA(即宽VGA�?00+×480像素的高清显示器。那么,是什么让“正常”迅速发生变化



从Android SDK中的仿真器样机获得的各种屏幕配置图(图片:Android开发者网站)

为了测试方便,我使用了摩托罗拉Droid X,其屏幕为WVGA。同样,从Android的标准看来这属于

显示器尺寸不同对于那些想创建单个尺寸适合所有的布局的设计师来所真算是非常具有挑战性的。我发现,最好的办法是设计一套布局320 × 480(基准),另一套为320 ×533(可视为“大”尺寸屏幕)

虽然这给设计师和开发人员的工作带来额外负担,如摩托罗拉Droid和HTC Evo等稍大一点手机所需的更大尺寸屏幕,可能需要在基准布局上做一些修改已更好地利用多余的空间

关于网点密度你应该知道的一些东西

屏幕尺寸只是问题的一部分!开发人员一般不考虑屏幕的分辨率,而是它的密度。以下是开发人员指南(Developers Guide)里提到的Android对这些内容的定义�?/p>

  • 分辨率

屏幕物理像素的总和


图象分辨率(PPI)

图像分辨率(ImageResolution):指图像中存储的信息量。这种分辨率有多种衡量方法,典型的是以每英寸的像素数(PPI,pixel per inch)来衡量;当然也有以每厘米的像素数(PPC,pixel per centimeter)来衡量的。图像分辨率决定了图像输出的质量,而图像分辨率和图象尺寸(高宽)的值一起决定文件的大小,且该值越大图形文件所占用的磁盘空间也就越多。图像分辨率以比例关系影响着文件的大小,即文件大小与其图像分辨率的平方成正比。如果保持图像尺寸不变,将图像分辨率提高一倍,则其文件大小增大为原来的四倍。


设备分辨率(DPI)

设备分辨率(DeviceResolution):又称输出分辨率,指的是各类输出设备每英寸上可产生的点数,如显示器、喷墨打印机、激光打印机、绘图仪的分辨率。这种分辨率通过DPI来衡量,目前,PC显示器的设备分辨率在60至120DPI之间。而打印设备的分辨率则在360至2400DPI之间。

  • 网点密度

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

  • 密度无关像素(Density-independent pixel ,DP

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

好像有点混乱,但在这里有些东西你必须知道的。在屏幕尺寸方面,Android将屏幕密度分成四个基本密度:lDPI(低),mDPI(中等),hDPI(高)以及xhDPI(特高)。这非常重要,因为你必须以lDPI,mDPI和hDPI密度形式输出所有图形内容(如位图)。现在,我们假设xhDPI只适用于平板电脑。

这意味着所有非绘制图形(如在运行时不能由Android自动按比例转变的图形),需要通过“中等”(320× 480)的基准屏幕布局来转换?

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

比方说,你从基准线设计的屏幕(记住“基线”布局设置320×480)上获取了一100×100像素的位图图标。将相同100 ×100图标配置在lDPI屏幕,该图标会显得很大很模糊。同样地,将其配置在hDPI屏幕上,它会显得太小(由于设备的每英寸的点数比mDPI屏幕多)

Android手机分辨率问题_第1张图片

要调整不同的设备屏幕密度,我们需要在四个密度大小之间按照3:4:6:8缩放比例。(对iPhone来说,它很容易:只需以2:1的比例在iPhone 4和3GS之间切换。)使用这些比率,通过简单的计算,我们就可以创造四个不同的版本的位图,以供开发生产:



  • 75×75对应低密度屏幕(如×.75)
  • 100 ×100对应中等密度的屏幕(基准)
  • 150×150对应高密度屏幕(× 1.5)
  • 200×200对应超高密度显示屏(× 2.0)(我们只考虑Android智能手机的应用程序上的lDPI、mDPI以及hDPI。

使用四种不同网点密度,最终图片会如上所示

做完了所有图像后,你可以按照以下方法归类图片 Android手机分辨率问题_第2张图片

推荐的文件夹及文件的归类和命名方法。在准备星型图片时,可以将所有未完成的图片命名为ic_star,不需要对应密度来换名称。

你可能会对怎么设置PPI(每英寸像素)感到困惑。只要将其保留于标准72PPI,并对应地调整图像即可。 (以上内容摘自雷锋网:《关于Android的一些设计》) 附上Android分辨率使用实时情况,数据由官方发布,会定期更新:
ldpi mdpi hdpi xhdpi
small 1.2% 2.7%
normal 0.9% 17.6% 71.9%
large 0.1% 3.0%
xlarge 2.6%

Data collected during a 7-day period ending on October 3, 2011

(实时数据查询地址:http://developer.android.com/resources/dashboard/screens.html) 自己动手简单画了两张图实验了下: 屏幕320*480:正方形 100*100 bar 320*44 Android手机分辨率问题_第3张图片

屏幕480*800: 原有元素(红色):正方形 100*100 bar 320*44 缩放后元素(紫色):正方形(100*1.5)*(100*1.5) bar (320*1.5)*(44*1.5) Android手机分辨率问题_第4张图片

套用之前的公式,320*480变到480*800,元素的像素*1.5就刚好适合大屏幕了。 不是什么复杂的道理,看着很长的理由,自己动手后其实很简单。

更多相关文章

  1. Android屏幕投影及反向控制原理
  2. android 面试题 谈谈屏幕适配
  3. [Android] 一种粗暴快速的 Android 全屏幕适配方案
  4. android自定义adapter 滑动屏幕时 进度条显示混乱
  5. Android屏幕横竖屏切换和生命周期管理的详细总结
  6. Android屏幕锁定实例源码详解教程一

随机推荐

  1. Android使用返回键退出实现
  2. [android深入学习]android窗口管理机制
  3. android的调试技巧,尤其是nativec等底层程
  4. android横竖屏备忘
  5. Android应用程序中执行二进制命令
  6. 7、NFC技术:让Android自动运行程序
  7. Android(安卓)Animation 框架
  8. 如何让Android开机不锁屏
  9. View事件分发机制
  10. RTC搭建android下三层应用程序访问服务器