`
isiqi
  • 浏览: 16548392 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

客户端交互设计适配之——屏幕大小

阅读更多

from:http://ued.taobao.com/blog/2011/03/04/mobile-app-design-based-on-screen-sizes/

随着各个手机操作系统的应用平台的上线,几乎所有的互联网应用都在往手机上迁移。然而手机与PC 不一样,PC经过了多年的发展,在设计上形成了很多不成文的规则,如网页的宽度都在960px左右【当然,由于整体的电脑屏幕往大尺寸及高分辨发展,除了背景宽屏自适应外,不少网页也正朝着更宽的方向上发展】。当前的手机种类繁多,手机屏幕的大小、比例各异,并且手机的屏幕本身就小,因此既要考虑应用在不同屏幕大小上的适配,又要保持其一致性,同时还要提高每个手机屏幕的使用效率,这就存在着很多的矛盾点。

在客户端的设计过程中,针对不同的屏幕大小,应该如何来设计?是否每个大小的屏幕尺寸都需要一个新的界面布局,还是所有的屏幕尺寸都使用相同的界面布局?我们将在下面的内容中来探讨这些内容。

一、当前热门手机的屏幕大小

下图中,我抽取了国内某个网络电器城某周的10大畅销手机排名:

虽然只是2010年中的某一周的手机销售量排名,由此可以看出,当前使用中的手机屏幕差异很大,各种屏幕大小和分辨率都有。如果为了适配更多的用户群体,则需要考虑的手机屏幕大小和分辨率更多。【不过,根据当前的手机发展趋势,及手机客户端的使用行为可以看出,最主要需要用户关注的手机屏幕是2.4吋以上,240*320以上的手机屏幕,因为这样的手机使用客户端的频率和用户量都会更多。个人建议更多地是考虑320*480及以上的屏幕。】

二、屏幕大小正确理解

说起屏幕大小的时候,会有两种表达方式,1) “我的屏幕2.4吋,你的屏幕3.5吋。” 2)“这个屏幕分辨率 240*320,那个屏幕分辨率为320*480。”但在设计过程中,屏幕的分辨率和屏幕的实际尺寸必须同时考虑。

这里首先有几个概念需要再澄清一下:

  • 屏幕物理尺寸 :屏幕对角线长的实际尺寸,如2.4吋,3.5吋等等
  • 屏幕分辨率 :屏幕所能显示像素的多少。如,240*320等。
  • 屏幕密度 (pixel per inch):以每英寸的像素数。每英寸的分辨率数,如160ppi。

物理尺寸决定了屏幕的实际尺寸,而分辨率可以表示屏幕上可以呈现的像素点数,屏幕密度决定了屏幕的精细程度。相同的屏幕大小,如果分辨率高,则屏幕元素更精细。一个界面元素在屏幕里的实际尺寸却是与屏幕密度相关,屏幕密度较小的屏上,界面元素的实际尺寸就会大些,反之亦然。

在进行手机界面布局中,除了元素的像素值外,考虑元素的实际尺寸也非常重要,甚至更为重要(人眼是要靠物体成像在视网膜上的视角大小来进行识别感知,视角是与物体实际大小和距离有关)。

在不同屏幕中,不同的图标点阵或者不同的字体及大小的汉字,在人的主观感知上,会有一个最优的结果值。在设计的过程中,我们需要根据这个最优值来进行界面的布局及设计。

也可以看出,这个用户感知最优的取值也与使用手机的人群有关(如年龄大的用户需要物理尺寸更大的界面元素)。

在不同屏幕中,不同的图标点阵或者不同的字体及大小的汉字,在人的主观感知上,会有一个最优的结果值。在设计的过程中,我们需要根据这个最优值来进行界面的布局及设计。

也可以看出,这个用户感知最优的取值也与使用手机的人群有关(如年龄大的用户需要物理尺寸更大的界面元素)。

三、设计过程与屏幕适配思路

1 .确定目标的屏幕大小

屏幕大小由宽度和高度两个因素决定,但是在布局手机客户端的过程中,最关心的是宽度值 。宽度确定后,高度可以由滚动或者翻页来显示所有内容;文字可以在适当的位置折行;标题栏可以伸缩适配屏幕宽度等等。但并不是不考虑高度,图标、文字、特殊的组件不仅需要考虑宽度,也需要考虑整个屏幕的布局是否与之适配。

由于不可能对所有的客户端进行单独的开发,因此,需要对手机屏幕的大小的归类。同时,在设计中也不会真的只考虑屏幕大小一个因素,屏幕大小和操作系统、手机类型等还是存在很大的相关性的。

首先,我们先来定义一下手机的屏幕大小的归类档次:

A. 小屏幕:宽度240 px 以下屏幕或者2.4 以下屏幕

  • 一般以非智能机为主,归在这个分类中的手机屏幕,一般是以java版本的客户端为主。

B. 中等屏幕:宽度240~320 px,或者2.4~3.0吋屏幕

  • 智能手机以Symbian或S60 v1,2,3,Windows mobile为主流;或者是非智能手机的客户端以java版本为主。
  • 同时包括240*320的宽屏手机。

C. 大屏幕:宽度320 px以上屏幕或者 3.0吋以上的屏幕

  • iPhone 手机只有两个版本的适配,屏幕物理尺寸保持一致;
  • Android 系统手机及衍生平台手机
  • Win phone 7 系统手机
  • Nokia S60 v5,symbian 3等

D. 平板屏幕:7吋及以上的屏幕【可以不包含在手机中,^_^】

  • 由于当前的平板电脑上的应用的开发都是基于手机应用的功能,但是,平板的屏幕物理尺寸大增,使用情景 也和手机不一致,在设计上有很多的特殊性,可发挥空间也更大,因此个人建议单独的设计。

其次,根据我们的产品战略,来确定待开发产品的用户群体来确定一款目标手机屏幕。由于对于某个业务的手机客户端都不会只推出其中的某一款(除非是战略上的用户群确定为使用某种手机的特殊业务),而是会对不同的手机平台分别进行适配。因此,确定的目标手机屏幕,应该是在该档次 中最主流的手机屏幕大小,在以此为基准向上或向下来适配其他的同档手机。

2 .适配原则

1) 客户端的logo,在各个手机上都应该清晰地显示

2) 标题或者底部栏必须100%的与手机宽度适配

3) 文字内容如果显示不下的话,可以自动适配宽度进行折行

4) 图片可以根据宽度进行自动缩放,屏幕宽度超过图片本身时,显示图片本身的大小

5) 适配过程中,界面的元素的宽高最小值应该符合用户的主观舒适范围值。

6) 不能完全使用分辨率的绝对比例来对界面布局进行缩放;

3. 适配思路分析

根据我们前面的分析,

C类大屏幕大小主要以Android、iPhone、win phone 7 和Nokia V5等手机为主,它们都是触屏手机,在适配上可以划为一个档次。

B类中等屏幕大小智能机主要以Symbian 和Windows mobile为主,因此在适配这两个平台时,主要集中在B类屏幕间的适配。

B类中等屏幕大小还有一块是非智能手机,使用Java客户端,同时,A类小屏幕大小主要使用Java客户端,因此,Java类客户端需要适配的范围更广,至少应包括B类和A类的屏幕大小。

(1)Android 与iPhone手机的适配

iPhone 本身就只有两个分辨率及一个屏幕大小尺寸,可以很好的来适配(最多出两套图片即可,系统会自动读取)。

对于android,由于其开放性,导致了各种屏幕的大小及分辨率都有。但Android系统有一个很好的特性,系统会根据屏幕的分辨率密度来进行自适应。但是,当密度差异较大时,自适应后,图标会由于拉伸变得模糊影响效果。这时,必须要通过重新设计新的图标或者加大间距来保持最佳的视觉效果及更便利于用户操作。

Android 手机屏根据屏幕的分辨率密度和物理尺寸,可以分为以下几类:

注:图中的【】内的值为手机所占的百分比值。Android 开发平台数据,不一定准

Android 提供了如下的机制来对不同大小和密度的屏幕进行适配:

1) 图片资源的缩放

基于当前屏幕的密度,平台自动加载任何未经缩放的限定尺寸和密度的图片。如果图片不匹配,平台会加载默认资源并且在放大或者缩小之后可以满足当前界面的显示要求。如果没有多套资源,平台会认为默认的资源是中密度的屏幕资源(160dpi)。例如,当前为高密度屏幕,平台会加载高密度资源(如图片),如果没有,平台会将中密度资源缩放至高密度。

2) 根据分辨率和坐标自动缩放(密度不同的屏幕适配)

如果程序不支持多种密度屏幕,平台会自动缩放绝对像素坐标值和尺寸值等,这样就能保证屏幕元素能和密度160的屏幕上一样能显示出同样物理尺寸的效果。平台会根据密度的比例来缩放实际尺寸的大小。

3) 兼容更大的屏幕大小(屏幕不同的适配)

当前屏幕超过程序所支持屏幕的上限时,定义supports-screens元素,这样超出显示的基准线时,平台会以屏幕大小的比例来缩放整个屏幕。

由上表格也可知,当前的Android手机主要集中在标准屏的中密度和高密度两个型号上。因此在设计中,主要是设计其中的一种为主,再去适配另一个型号即可。对于在一个档次上的手机,都会根据上述的三个原则,系统自动去适配。个人认为,在进行 Android 手机设计时,如果只准备一套资源时,应该以高密度的版本为主,这样去适配中密度时,效果更好。

当然,如果屏幕的密度差异较大时,自动适配的效果肯定不会,如果要取得更好的适配效果,必须针对几个不同的屏幕密度进行单独设计屏幕元素,提高视觉满意度。

(2)非Android、iphone的手机适配

对于其他的非Android、iphone手机,则需要更多地考虑其适配规则,这些手机系统不提供自适应的适配。

简单整理规则如下:

1) 向上适配(标准屏向更大【分辨率高,物理尺寸大】的屏幕适配)

在向更大的屏幕适配时,根据设备分辨率的不同,会分为两种状态。

A.如果两者的屏幕分辨率密度(dip)差不多,物理尺寸更大的屏幕。那可以直接在当前尺寸上拉长、拉宽即可,图标、行距都可以保持不变。

B. 如果屏幕密度要大很多,物理尺寸差不多的。则适配点包括:

  • 设计多套图标,需要有更大分辨率的图标
  • 使用不同的字体,需要更大的字体来适配大设备分辨率的屏幕
  • 增加行间距
  • 自适应放大内容中的图片
  • Tab页签 需要根据屏幕的大小来确认每屏最多显示的数目。
  • 考虑一些复杂界面,增大界面中的一些元素的分辨率,会导致许多东西需要重新设计。这种情况需要重新设计该界面。

2) 向下适配

在向更小的屏幕适配,这种情况较少,那会集中在如下几点:

  • 考虑一些极限点的改进,需要适配到小屏幕的手机中,如标题的最大字数等。
  • title、bottom栏与小屏幕宽度适配。
  • 考虑到行高(行信息展示)的设计是否适合更小的屏幕高度。
  • 在结构上,需要考虑在小屏幕中,显示是否合适。
  • 根据屏幕密度的比例来设计屏幕元素,需要更小分辨率的屏幕元素
  • 使用小的字体,具体的大小需要根据屏幕的大小来设定。

(3)竖屏横屏适配

横竖屏的适配,在本文中,不过多讨论,这里只是简单的整理一下,我自己的理解。

对于不同功能的应用,都有其特定的页面展现形式,个人并不赞同蛮目对任何应用不加选择的都去适配横屏。

个人观点如下:

1) 不同的应用,在设计的过程中,对于选择不同的屏幕有不同的选择,如普通list多的应用,竖屏更合适;显示图片更多的界面,或者想更好的展示全景的应用,横屏更合适。

2) 不必遵循,对任何的应用都可以自动进行横屏竖屏的切换。如果觉得没有必要横屏或者竖屏的应用,就可以不切换。

3) 由于用户在使用手机的过程中,经常会无意中调整位置,从而导致手机误认为是要进行横竖屏的转化,从而更容易导致操作上的失误,引起用户的反感。

4) 横竖屏的切换时,允许用户对于同一个界面有不同的展示方式。例如不一定在竖屏时时list方式显示,在横屏时也和竖屏保持一致,这时横屏可以有更好的适应横屏的展示方式,使用户更好的操作。

由于手机系统各异,手机的屏幕尺寸五花八门,屏幕的性能也呈现多样性,还有触摸屏和非触屏的区分,这四个变量结合起来,会有无数种不同的情况,如何能使你的应用完美地展现给用户,适配固然很重要。但是,更重要的是你要在适配之前,确定应用的目标群体。如果你的应用主要是针对高端手机用户的,那你何必去考虑低端的手机呢?毕竟为了很少的用户,使你花了很大的力气,可能会有不值得,这一点绝对值得每一个设计师思考。

===========

题外话

一般来说,我们在设计一个产品时,首先需要确定产品的用户群体,然后基于用户群体来设计针对该用户群特点和使用行为的界面。但是对于手机客户端,感觉这个过程不能完全适用:

原因是因为,我的客户端设计主要是针对不同的手机平台(Android 、ios ,Win Phone 7 ,Palm Pre ,Symbian… )来开发的,因此,开发出来的客户端适用于所有的持有该手机的用户。但是这些手机持有者是否都有相同的特质,是否都喜爱使用该客户端,是个很大的未知数。另一方面,如果我在建立用户群时,完全根据用户的需求、使用行为又或者人种学特征来分类,那每一群人中持有的手机各不相同,那又该如何定义每个不同平台下的客户端的功能呢?

当然,有人也会说那就先了解不同的手机平台的用户群特征,然后再研究这群人对本客户端应用的需求和使用行为,以此再来设计客户端,目前来说这是更好的研究思路。

总之,这样深入的讨论,会发现客户端会越想越复杂,有人说手机客户端的设计是最复杂的,是很有道理的,值得大家更多地探讨…

分享到:
评论

相关推荐

    电话客户端交互适配设计之——我见.pdf

    本文将从电话平台、机型(触屏和键盘)及屏幕大小三个方面进行探讨,以期对电话客户端的交互适配设计提供有益的见解。 首先,针对不同电话平台的适配分析是基础工作。目前市场上的主流平台包括iOS、Android、...

    综合课程设计项目——航空订票系统android客户端.zip

    【综合课程设计项目——航空订票系统android客户端】 本项目是一个综合性的课程设计,主要针对Android平台,旨在帮助学生或开发者了解并掌握Android应用开发的基本技能,特别是在构建一个实际的航空订票系统客户端...

    安卓Android源码——Facebook客户端.zip

    【安卓Android源码——Facebook客户端.zip】是一个包含Facebook客户端源代码的压缩文件,这对于学习和研究Android应用开发,特别是社交应用的实现具有重要的价值。在这个压缩包中,开发者可以深入理解Facebook应用...

    安卓Android源码——Oschina客户端.zip

    【Android源码解析——Oschina客户端】 在深入解析安卓Android源码——Oschina客户端之前,我们首先要了解Android系统的基本架构。Android是一个开源的操作系统,主要由Linux内核、库层、应用框架以及应用程序四大...

    设计模式——适配器模式

    3. 隐藏实现细节:客户端只与适配器交互,无须关心适配的具体实现。 在实际应用中,适配器模式常用于数据库连接、硬件设备控制、框架之间的接口转换等场景。例如,当我们需要将一个使用COM接口的旧设备接入到使用...

    Android源码——新浪微博客户端源码.zip

    9. **国际化和本地化**:作为面向全球用户的社交应用,微博客户端可能会支持多语言环境,这涉及到字符串资源的管理、布局适配等问题。 10. **测试与调试**:优秀的源码应该包含全面的测试用例,以确保代码质量。...

    安卓Android源码——Xabber客户端.zip

    Android的权限系统在不同的API级别有不同的处理方式,Xabber客户端是如何适配不同版本的Android系统,以及如何优雅地请求和处理用户权限,是学习的重点。同时,为了实现后台持续的聊天服务,Xabber利用了Service组件...

    安卓Android源码——EOE论坛客户端.zip

    【Android源码解析——EOE论坛客户端】 在深入探讨EOE论坛客户端的Android源码之前,我们首先要理解Android操作系统的基本架构。Android是一个基于Linux内核的开源操作系统,主要用于移动设备,如智能手机和平板...

    Android源码——新浪微博Android客户端.zip

    本次我们关注的是"Android源码——新浪微博Android客户端",通过对这一开源项目的深入研究,我们可以了解到Android应用设计的诸多细节,包括用户界面(UI)构建、网络通信、数据存储以及性能优化等多个方面。...

    基于python的客户端的设计与实现 论文.docx

    为了应对日益复杂的网络环境,如带宽限制和多样化的视频源服务器,本论文提出了一种基于Python的多任务协同异步视频获取客户端——Multitasking Asynchronous Video Client(MAV)。MAV旨在提升视频抓取的效率,增强...

    设计模式——适配器模式(adapter)

    在阅读文章《设计模式——适配器模式(adapter)》时,你可以期待了解到更多关于适配器模式的实战案例、优缺点分析以及如何在实际项目中有效利用这一模式来解决问题。同时,提供的`adapter`压缩包文件可能包含示例...

    Android源码——腾讯微博客户端源码.7z

    本文将围绕“Android源码——腾讯微博客户端源码.7z”这一主题,详细探讨其中的关键知识点,旨在帮助读者掌握Android开发中的核心技术和最佳实践。 首先,我们要了解Android应用的基本架构。一个标准的Android应用...

    安卓Android源码——Cnblogs博客园安卓客户端.zip

    【安卓Android源码——Cnblogs博客园安卓客户端】 这篇内容主要探讨的是关于安卓Android的源码分析,特别是针对Cnblogs博客园的安卓客户端应用。源码是软件开发的核心,它揭示了程序背后的逻辑和设计思路,对于...

    安卓Android源码——饭否客户端源码.zip

    1_121018141321_3.png、1_121018141321_4.png、1_121018141321_1.png、1_121018141321_2.png:这些可能是应用的截图或者设计图,用于展示应用界面和功能,帮助开发者理解应用的外观和交互流程。 源码说明.txt:这个...

    安卓Android源码——[安卓开源]EOE论坛客户端.7z

    客户端中的 `Activity` 和 `Fragment` 类用于管理屏幕上的交互。通过研究它们的生命周期方法,开发者可以理解如何在不同的应用状态之间切换,并处理用户交互事件。 3. **网络通信** EOE 论坛客户端很可能会使用到...

    微博客户端原型-android版.rar

    总结来说,“微博客户端原型——Android版”涵盖了界面设计、功能实现、交互体验、性能优化等多个方面,是开发者和设计师共同智慧的结晶。理解和掌握这些知识点,对于开发出符合用户需求、具有竞争力的微博客户端至...

    安卓Android源码——高仿网易客户端UI(tabhost).zip

    "安卓Android源码——高仿网易客户端UI(tabhost)" 这个标题揭示了我们要探讨的核心内容。它是一个基于Android平台的源代码项目,目的是模仿网易新闻客户端的用户界面(UI)。"TabHost"是Android开发中的一个关键...

    Web客户端开发——HTML5+CSS+JavaScript实例教程.rar

    5. 响应式设计:通过媒体查询实现不同设备上的适配。 6. JavaScript事件处理:创建用户交互,如按钮点击、表单验证等。 7. 使用jQuery简化DOM操作和动画效果。 通过本教程的学习,你将具备创建现代、互动性强的Web...

Global site tag (gtag.js) - Google Analytics