ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在\private目录下存储应用程序图片文件

在\private目录下存储应用程序图片文件

原创 Linux操作系统 作者:wenly8384 时间:2009-04-17 03:54:42 0 删除 编辑

 

如果图片文件存放在受保护目录下,则在S60第三版上使用AknIconUtils加载图标或图片可能会引发错误。

如果图片文件aFileName存放在一个受保护目录下,如\private\\下,则在S60第三版中使用AknIconUitls的下列方法(akniconutils.h)时将会引发错误:

void CreateIconL( CFbsBitmap *&aBitmap, 
CFbsBitmap *&aMask,
const TDesC &aFileName,
TInt aBitmapId,
TInt aMaskId )

这是因为Avkon icon server无法访问存放在保护目录下的文件。


  • 案例重现:

在这种情况下AknIconUtils::CreateIconL()不会引发异常,不管怎么说,aBitmap和aMask参数将不会指向有效位图。如果尝试使用返回的位图将会引发错误异常。

例如,尝试使用AknIconUtils::SetSize()设置位图大小时会引发error -46(KErrPermissionDenied)


  • 解决方案:

不要将文件名传递到CAknIconUtils,程序应当完成max-in类MAknIconFileProvider,以便提供一个打开的文件句柄给Avkon icon server.

CAknIconUtils有一个可供重载的CreateIconL()方法以便接收一个MAknIconFileProvider示例。

这里提供一个完成MAknIconFileProvider 类的示例,请下载S60 Platform. Scalable Screen-Drawing Example

注意:包含应用程序图标的.mbm和.mif文件(会在LOCALISABLE_APP_INFO资源定义中被引用)应该永远安装在\resource\apps\.目录下。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17096048/viewspace-590718/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-12-20

  • 博文量
    12
  • 访问量
    22314