当前位置:编程学习 > wap >>

面向MID进行用户界面设计的经验之谈 <3>

3.1.3.窗口大小

问题:如果应用窗口使用固定尺寸,而不是自动调整大小以适应整个屏幕,那么屏幕上的某些图像或元素将无法显示。MID 的宽屏一般使用 800x480 或 1024x600 的分辨率,这会使问题更加复杂,因为图像的宽高比必须与标准 PC 所采用的 4:3 的宽高比相匹配。



图 5. 窗口的可见度。在标准 PC 上(左),用户可以看到整个游戏区域,包括操作界面的信息区域。如果将窗口进行剪切,以适应 MID 更小的屏幕尺寸或其它宽高比(中),则如透明区域显示的那样,部分图像将无法显示出来。如果将图像按比例缩放到 MID 的屏幕尺寸(右),则基本上能看清所有图像,虽然有一定的图像扭曲,但仍在可以接受的范围内。

最佳方案:对于开发人员来说,解决这个问题的关键就是在开发 MID 用户界面时就应考虑 800x480 和 1024x600 的分辨率,可以缩小整个游戏窗口来适应屏幕,也可对界面进行重新安排,以充分利用宽屏的优势。例如,在某些情况下可提供滚动栏,允许用户手动或自动调整窗口来观看整个屏幕,从而提供可以接受的用户体验。



3.2.触摸屏

MID 使用的是触摸屏而非鼠标,这进一步增加了移植应用的复杂性。对于大多数软件操作而言,触摸屏的作用与鼠标类似,不同之处在于,用户拖动光标时产生的是线性的移动轨迹,而触摸屏产生的则是类似于点击按钮的操作效果。不点击就无法移动光标,以及左击与右击之间的关系也会导致一些问题。



3.2.1.准确解读触摸屏输入信息

问题:MID 应用必须能够将用户提供的光标输入理解为一系列的点(等同于一系列的触摸屏点击操作),而不需要线性的移动模式(如同用鼠标移动光标所产生的操作)。在某些应用中(例如第一人称射击游戏),如果需要将图像切换到用户的视角,以使光标始终处于屏幕中央,这种问题就会变得尤为明显。在这种情况下,当用户触摸屏幕时,光标可能会四处随意跳动,而不是移动到用户点触的位置。

最佳方案:如果游戏能够跟踪光标从 A 点到 B 点的移动,那么它应该将其理解为在 A 点和 B 点的两次点击,而不是在 A 点与 B 点之间移动。在 MID 上使用鼠标通常能够解决这个问题,但从用户体验的角度来看,这种解决方法显然不够理想。

3.2.2.精确的触摸屏映射

问题(窗口分辨率小于实际屏幕尺寸):当应用在全屏模式下以小于实际屏幕尺寸的分辨率运行时,游戏会在屏幕中央显示,屏幕两侧将出现一定的空间(比如将 640x480 的窗口在 800x480 的屏幕上居中显示,或将 800x600 的窗口在 1024x600 的屏幕上居中显示时,屏幕两侧会留有黑色条形区域),当将整个触摸屏界面映射到相对较小的显示区域时,即会出现错误映射的问题。这种错误映射会导致界面对用户操作产生错误的响应,比如一个按钮的可点击区域与屏幕上显示的按钮位置不符。



图 6. 将游戏窗口居中显示时,屏幕两侧会留有空白区域,读取屏幕点触操作的游戏逻辑不能将整个屏幕区域映射到游戏窗口上。这种错误映射的结果就是,当点触屏幕上的一个位置时(黄色箭头指向的位置),而游戏逻辑却认为点触操作发生在另一个位置(红色星号的位置)。

最佳方案:在将应用居中显示,屏幕两侧留有空白区域时,只要映射逻辑能够将两侧的空白区域识别为屏幕本身的一部分,就不会出现错误映射的问题。通过这种调整,屏幕触摸会准确地映射到触摸位置。

问题(窗口分辨率大于实际屏幕尺寸):如果窗口的纵向尺寸大于屏幕的实际尺寸,则可能发生纵向的错误映射问题。在这种情况下,触摸屏通常会映射到整个游戏窗口,而不是可显示的部分。这样,就会发生错误响应点触操作的现象。



图 7. 当游戏窗口在纵向上被部分剪切时(半透明区域),也同样会导致错误映射的问题,即点触一个位置(黄色箭头指向的位置),而游戏逻辑却认为点触发生在另一个位置(红色星号的位置)。

最佳方案:开发人员应确保操作系统将触摸屏准确地映射到屏幕的可视部分(包括游戏未使用的部分),但不应包括游戏窗口中不可视的部分。另一个解决方案则是,开发人员可将 800x480 和 1024x600 分辨率作为用户可配置的选项。在某些情况下,可以自动调整窗口大小,使其填充整个屏幕,前提是这种调整所产生的屏幕扭曲在可以接受的范围内。

--------------------编程问答-------------------- 学习中,不错 --------------------编程问答-------------------- 顶哈 --------------------编程问答-------------------- 看贴是学习,顶贴是义务。呵呵 --------------------编程问答-------------------- 学习中
补充:移动开发 ,  超极本开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,