×
Namespaces

Variants
Actions

Belle系统移植guideline

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
Amazing110 在 09 Mar 2012 创建
最后由 hamishwillee 在 30 May 2013 编辑

Introduction

Describes the changes in Nokia Belle that affect the application developers and guides them to adopt these changes. 本文介绍了Nokia Belle系统的相对以前系统的一些变化,引导开发者在向Belle系统移植应用作出正确的代码调整。 Nokia Belle系统相对于以前的版本最大的变化就是用户接口方面,想终端手机用户提供了更多的更丰富的视觉感官体验。

Summary

Nokia Belle系统主要变化:

  • 横竖屏时 - 控制面板(软件区域 CBA)

在Belle系统中,我们使用图形化的按钮替代了以前文字性的按钮,LSK和RSK对调了位置。也就是说,“Back”或者“Exit”按钮现在被放置了屏幕下方最左边,同时选项菜单被放置了屏幕下方最右边。所有的使用标准按钮的应用程序并不会被这个变化所影响,因为Belle系统会自动的帮你把以前你所使用的标准软件命令自动的映射到Belle系统的图标按钮上。但是对于自定义的软件Belle系统并不能帮你自动映射到新的CBA图标上面,那么怎么办呢?有下面的解决方案: 1> 尽量使用系统的标准的软件,就是说在移植时,尽量帮以前你自定义的软件,修改为系统标准的软件命令。如果实在不行,那么请按方法2来修改。 2> 映射Belle系统中某一个ICon按钮到你的自定义软件的唯一的ID上。 系统常见软件命令如下: EAknSoftkeyEmpty EAknSoftkeyOk EAknSoftkeySelect EAknSoftkeyCancel EAknSoftkeyDetails EAknSoftkeyCall EAknSoftkeyOptions EAknSoftkeyBack EAknSoftkeyDone EAknSoftkeyExit EAknSoftkeyClose EAknSoftkeyHide EAknSoftkeyMark EAknSoftkeyUnmark EAknSoftkeyYes EAknSoftkeyNo EAknSoftkeyUnlock EAknSoftkeySave EAknSoftkeyShow EAknSoftkeyRead EAknSoftkeyListen EAknSoftkeySearch EAknSoftkeyAgain EAknSoftkeyQuit EAknSoftkeyInsert

虽然我们有上面两种方法,但是还是强力推荐使用系统标准命令,避免我们进行自定义软件与ICON映射所带来的额外工作,而且使用系统自身图标也更能保持应用界面外观与Belle系统的一致性。

那么下面我们还是讲一下,到底怎么进行自定义软件与ICON的一个映射工作,需要两步工作:

(1) 通过系统接口CEikCba::SetCommandToIconMapperL 设置命令的回调,示例代码如下:

static_cast<CEikCba*>( cba->ButtonGroup() )->SetCommandToIconMapperL(MapCommandToIcon, cba);
 
//Callback handler function
TBool CMyClass::MapCommandToIcon( TInt aCommand, CEikCba::TIconInfo& aIconInfo, TAny* /*aPtr*/ )
{
switch( aCommand )
{
case EMyCmd0:
aIconInfo = CEikCba::TIconInfo( KAknsIIDQgnIndiTpIdle, KAvkonBitmapFile,
EMbmAvkonQgn_indi_tp_idle, EMbmAvkonQgn_indi_tp_idle_mask );
return ETrue;
case EMyCmd1:
aIconInfo.iIconFile.Set(KAvkonBitmapFile);
aIconInfo.iIconId = EMbmAvkonQgn_indi_tp_dialler;
aIconInfo.iMaskId = EMbmAvkonQgn_indi_tp_dialler_mask;
return ETrue;
default:
return EFalse;
}
}

(2) 添加下面的 ICONIC_CBA_BUTTON 信息到应用的资源文件,示例代码:

RESOURCE ICONIC_CBA_BUTTON r_custom_icon_cba_button
{
id = EMyCmd0;
txt = "Options";
bmpfile = "\\resource\\apps\\avkon2.mbm";
bmpid = EMbmAvkonQgn_indi_tp_idle;
bmpmask = EMbmAvkonQgn_indi_tp_idle_mask;
skinid_major = EAknsMajorGeneric;
skinid_minor = EAknsMinorGenericQgnIndiTpIdle;
}
 
RESOURCE CBA r_custom_icon_cba
{
buttons =
{
ICONIC_CBA_BUTTON
{
id = EMyCmd0;
txt = "Options";
bmpfile = "\\resource\\apps\\avkon2.mbm";
bmpid = EMbmAvkonQgn_indi_tp_dialler;
bmpmask = EMbmAvkonQgn_indi_tp_dialler_mask;
skinid_major = EAknsMajorGeneric;
skinid_minor = EAknsMinorGenericQgnIndiTpDialler;
},
ICONIC_CBA_BUTTON
{
id = EMyCmd1;
txt = "Back";
bmpfile = "\\resource\\apps\\avkon2.mbm";
bmpid = EMbmAvkonQgn_indi_tp_help;
bmpmask = EMbmAvkonQgn_indi_tp_help_mask;
skinid_major = EAknsMajorGeneric;
skinid_minor = EAknsMinorGenericQgnIndiTpHelp;
}
};
}



  • Toolbar

Toolbar是控制面板的一部分(并非属于application区域)。对于所有已经存在的并且有3个toolbar按钮的在程序区域的程序,我们建议在Belle改变为在控制面板区域只设置两个关键选项,其余toolbar选项都合并到选项菜单里面去。 下面是一个关于AVKON按钮资源文件定义的例子:

AVKON_BUTTON_STATE
{
txt = "text";
helptxt = "help text1";
bmpfile = MY_MIF_FILE;
bmpid = EMbmMyId;
bmpmask = EMbmMymask;
}


  • Status pane 状态面板

状态面板(包含标题区域,指示器区域以及电量,信号指示器) 在Belle系统中都被尽量的最小化了,以便应用程序可以有更多的显示区域,并且导航栏(比如tabs)已经不属于状态面板的一部分了。

  • Navi pane 导航面板

导航面板位于application区域,根据需要决定是否显示。如果程序没有任何的导航内容,那么它不会被显示。

  • Status notification pop-ups 弹出状态通知

在Belle以前的系统中,通过点击状态指示器indicator,可以弹出当前状态通知,但是在Belle系统中变为了从屏幕顶端向下滑动,在新的状态通知组件中有很多图形化的开关按钮,比如蓝牙开关,消息通知列表,以及其他的系统信息。


  • 其他API的变化,包括 移除的API,新增的API 等等,请参见下面链接:

Belle系统API变化

相关链接

Portal:Qt (Chinese) Belle系统新特性

This page was last modified on 30 May 2013, at 07:31.
133 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×