Symbian/S60
本页或本节是一个未完成的草稿或提纲。 您可以帮助开发工作,或者您可以在项目室寻求帮助。 |
诺基亚的 S60,以前称为 Series 60,是一个基于 Symbian OS 的移动平台。S60 包含各种功能的手机。大多数这些手机是由诺基亚制造的,但 S60 也授权给一些其他手机制造商,如松下和三星。有关 S60 的一般信息,请参见维基百科上的文章.
该平台包含各种库和预装应用程序。平台是开放的(但不是开源的),因此第三方可以为其开发应用程序。诺基亚为 S60 提供软件开发工具包,可以在诺基亚论坛找到 SDK 列表。特别是如果您计划使用更新的 SDK,您将需要Carbide.vs.
S60 资源定义有时可能很繁琐,因为完全缺乏适当的文档。寻找有关资源定义信息的最佳位置是示例,位于 SDK 的 Series60Ex 目录中,但它们也不尽完美。
- CAknMessageQueryDialog
某些 SDK 版本的示例中完全缺少一个控件,即 CAknMessageQueryDialog,它实际上非常有用,一旦您知道如何使用,就非常容易使用。以下是定义此控件的工作资源的方法
RESOURCE DIALOG r_messagequery_dlg { flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow; buttons = R_AVKON_SOFTKEYS_OK_EMPTY; items= { DLG_LINE { type = EAknCtPopupHeadingPane; id = EAknMessageQueryHeaderId; control = AVKON_HEADING { label = "The Heading"; }; }, DLG_LINE { type = EAknCtMessageQuery; id = EAknMessageQueryContentId; control = AVKON_MESSAGE_QUERY { message = "The Actual Text"; }; } }; }
请注意,标题和消息文本都可以从代码中动态设置。但是,以下代码使用资源中给定的值
CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog; dlg->ExecuteLD( R_MESSAGEQUERY_DLG );
至少在两部手机上,对旧版 RCameraServ 的支持已被删除。如果您将您的应用程序链接到 cameraserver.lib,它将不会在 3230 或 6260 上启动。相反,您应该使用新的 CCamera 类。
- 透明度
在使用 6.1 之前的 SDK 时(注意:不确定 9.1 是否仍然存在此问题),将 PNG 的 alpha 通道(蒙版)加载到颜色深度为 EGray16 的 CFbsBitmap 中不起作用。您必须使用颜色深度为 EGray256 的蒙版,否则 MiuoConvertComplete 将始终返回错误。转换完成后,您可以转换回 EGray16。
- DataAddress()
在新的 9.1 SDK 上,如果未在之前调用 LockHeap(),则调用 CFbsBitmap::DataAddress() 会导致崩溃(记住在完成操作后调用 UnlockHeap())。