×
Namespaces

Variants
Actions

使用AIW旋转图片

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

文章
翻译:
hoolee
最后由 hamishwillee 在 17 Aug 2012 编辑

CS001139


  • 开发伙伴平台:

S60 3rd Edition


  • 详细描述

下列示例代码演示了如果使用AIW(Application Interworking Framework)来处理图片的90/180/270度旋转。


代码可以通过自签名来执行。


  • 前提

改API不属于公开SDK的一部分,可以在SDK API Plug-in找到。


  • MMP文件

需要下列库

LIBRARY servicehandler.lib


  • 资源文件

需要增加下列头文件

#include <AiwCommon.hrh>
#include <AiwCommon.rh>


在MENU_PANE资源中定义如下子菜单:

MENU_ITEM
{
command=ERotateSub;
cascade=r_rotate_menu;
txt = "Rotate";
}


然后按照如下定义实际的子菜单:

RESOURCE MENU_PANE r_rotate_menu
{
items =
{
MENU_ITEM
{
command=EAIWPlaceHolder1;
txt = "Rotate";
}
};
}


之后定义AIW菜单相关如下:

RESOURCE AIW_INTEREST r_aiwmenutst_ROTATE
{
items =
{
AIW_CRITERIA_ITEM
{
id = EAIWPlaceHolder1;
serviceCmd = KAiwCmdRotate; //from aiwcommon.hrh
serviceClass = KAiwClassMenu; //from aiwcommon.hrh
contentType = "image/*";
}
};
}
  • 源文件

增加下列头文件

#include <AiwServiceHandler.h>


构造CAiwServiceHandler并关联菜单

iServiceHandler = CAiwServiceHandler::NewL();
iServiceHandler->AttachMenuL(R_ROTATE_MENU, R_AIWMENUTST_ROTATE);

因为旋转是定义在菜单项目中的,因此你可以在DynInitMenuPaneL方法中增加下列代码处理菜单:

if ( iServiceHandler->HandleSubmenuL( *aMenuPane ) )
{
return;
}
if(iImageFileName.Length()
&& BaflUtils::Parse(iImageFileName) == KErrNone)
{
CAiwGenericParamList& paramList = iServiceHandler->InParamListL();
 
TAiwVariant varFile(iImageFileName);
TAiwGenericParam paramFile( EGenericParamFile, varFile );
paramList.AppendL( paramFile );
 
TAiwVariant varMime(_L("image/jpeg"));
TAiwGenericParam paramMime( EGenericParamMIMEType, varMime );
paramList.AppendL( paramMime );
 
iServiceHandler->InitializeMenuPaneL(
*aMenuPane,
aResourceId,
EAIWExampleCmdLast1,
paramList);
 
}
else if(aResourceId == your Menu id goes here)
{
// Use aMenuPane->SetItemDimmed to dim out the menu item.
}


当用户选择菜单项时,你需要让你的命令处理程序使用CAiwServiceHandler处理相关命令。

CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC();
 
TAiwGenericParam filePath( EGenericParamFile, iImageFileName );
paramList->AppendL( filePath );
 
TAiwVariant varMime(_L("image/jpeg"));
TAiwGenericParam paramMime( EGenericParamMIMEType, varMime );
paramList->AppendL( paramMime );
 
iServiceHandler->ExecuteMenuCmdL(
aCommand,
*paramList,
NULL,
0,
this);
 
CleanupStack::PopAndDestroy(paramList);
This page was last modified on 17 August 2012, at 09:52.
74 page views in the last 30 days.
×