×
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.
101 page views in the last 30 days.