代码改变世界

如何开发绚丽、高效率的界面(Windows嵌入式系统)(一)

2009-10-05 17:01  王克伟  阅读(7532)  评论(29编辑  收藏  举报

这篇文章介绍在Windows Embedded CE/Windows Mobile等系统上开发高效的2D应用的技术。文章分为如下几个部分:

1.相关商用产品一览

2.Windows系统下图形编程的相关基础知识

3.DirectDraw简介

4.DirectDraw驱动开发

5.DirectDraw应用开发

6.一个推荐的入门Sample

 

1.相关商用产品一览

因为嵌入式产品种类太多,像MID这样的产品我们接触还是不多,所以这里仅仅介绍手机相关的。

Moto Today

Moto最初的Linux手机研发没有什么成果,最近倒是看到它出了不少Windows Mobile手机,比如A3000A3100,还有即将上市的A3300,因为我也参与了A3300的开发,所以对其还是比较了解的,个人感觉至少从外观上后者也比前面两款出色多了。但这也不一定能给Moto带来好运。

下面的截图是我从论坛中下载的Moto Today的截图,这个界面产品是由台湾Brogent公司开发的,因为涉及到版权问题,我不会提供任何安装包(你应该可以从网上看到,比如这里),这篇文章仅仅是研究实现这样效果的技术。

 

CEZoom1CEZoom1 CEZoom0

 CEZoom0 CEZoom2

这个界面有比较好的用户体验,其特点简单归纳如下:
1.窗口使用匀滑滚动、逐渐放大/缩小、逐渐透明等效果来进行切换。
2.窗口中的小项可以被拖动,具有惯性移动的效果,而不是死死的“呆在”那里。
3.被选中的一项使用彩色,其它项置灰色。
4.被鼠标点中的设置为一定Alpha值的半透明。
5.被长按的图标会变形,然后即可改变这一项在整个栏目中的位置。否则的话仅仅是移动整个栏目的位置。
6.一段时间没操作的界面会恢复原位,方便用户操作。
7.支持一些简单的手势。
8.最难得的是整个界面在处理器速度较低的设备上运行仍然非常快。

我们知道Windows Mobile 6.5已经更改了很多Shell,而且提供了手势API(比如可以方便大图片的浏览),所以利用这些功能开发出优秀的界面会更轻松些。但是Moto Today是在6.5推出之前推出的。

 

Spb Mobile Shell 3.0

以上是Moto Windows Mobile手机的主界面,让我们再来看看Spb ISV的Mobile Shell,这玩意开发起来复杂多了,不过对我像这样的人来说用起来稍微麻烦了点,我更喜欢简洁、美观、快捷的界面。

100 103 500

 501 505  105

这个产品的价格不菲,大概需要人民币270元。不过你可以下个使用版

简单总结如下:

1.因为不支持3D硬件加速,界面的3D效果一般,我认为与其这样还不如使用绚丽的2D替代。其实现3D效果的技术可能是Dircet3DM或者是OpenGL ES。
2.能够扩展基于网络的Widgets应用,比如:Weather, Internet search, Facebook and Twitter等,非常吸引人。

 

三星的高端智能手机界面

三星高端智能手机界面都有一个特点,那就是在主界面的左边有可以伸缩的一栏(要不要我们给它发扬光大,在右边也搞一个^^)。三星的手机有采用Windows Mobile系统,也有采用自己的系统。韩国是手机生产商采用Windows Mobile系统比例最高的国家。另外是下面介绍到的LG。

三星i8000(Windows Mobile系统)
U2485P2T186D38428F4744DT20090805154401

其它一些款式:

1253239560_LLkK6O U513P2T136D8698F3244DT20090218201255

 1253246132_70zbJk

搜集资料时我看到三星手机的款式与Moto相比丰富了很多,三星产品更新的速度较快,我想这也是三星从产品销售量上超越Moto的原因之一。

 

LG高端智能手机界面

LG的一款KM900e很吸引我,因为产品介绍是3D界面,你可以点击这里到官方网站上试玩,我很好奇,难得手机还有独立的GPU不成?我就跑到市场上把玩了真实的机子。其实仅仅主界面是3D的,简单的立方体,也不会太耗CPU。不要被忽悠了以为能玩3D游戏。这款手机的用户界面总体来说是不错的,仅仅是有点贵^^

clip_image002[1]clip_image002[3]

GM730:

U2485P2T186D38636F4744DT20090814145717

KC910e:

lg-mobile_phones-KC910e-front-large

 

iPhone

iPhone在用户界面方面是领先的,其用户体验非常出色,这也带动了用户界面的发展。让像微软这样的公司也开始反思自己在用户体验方面的落后。现在只要让我看到特有的蓝色加白色搭配就让我想到这是苹果公司的产品。

image 

image 

image

image

image

题外话:iPhone自从出生以来,所售出的手机数量跟其它品牌的相比还是非常的少,但是其利润却非常的惊人,利润率让其它品牌手机羞愧。苹果公司走的路子目前看来不愧是成功的。可能也是微软逼出来的^^

 

HTC Hero

这款手机采用的是Android系统,界面的Alpha透明的运用,色彩的搭配,丰富的手势支持,正是我非常喜欢的类型。

6678457_0

Img265838539 Img265838540

Img265838551 Img265838537

Img265838550  Img265838553

Img265838555 Img265838541

 

限于篇幅的原因,更多其它手机界面就不再介绍了,比如Palm pre

sj_palm_pre_1 palm-pre-screenshot-1-300x451

 

题外话

1.用户的需求挖掘是一项非常高深的学问,怎样开发出一些创新、用户喜爱的需求是比较有挑战性的,一个很棒的需求分析师至少精通用户心理学。

2.用户体验(User Experience)在国内目前还不够重视,我们设计的产品并没有专门的用户体验测试。对产品的体验因人而异,决定因素比较多,界面仅仅是其中一个因素,很难定量。也许未来我们国内的大部分公司会询问用户:亲爱的用户大人请问您感觉好吗?

 

用户界面仅仅是优秀的嵌入式产品的一个关键因素,这篇文章仅仅就用户界面展开介绍。笔者希望能够引导读者到技术实现上的讨论,如果你有想法,不妨在留言栏上写上两句。如果您对这篇文章感兴趣,请看下文:如何开发绚丽、高效率的界面(Windows嵌入式系统)(二)