zoukankan      html  css  js  c++  java
  • 如何找出功能键的正确位置?(转)

    设备, 软件 版本: S60 3rd Edition and FP1

    Nokia E70, Nokia E90, Nokia N93, Nokia N95

    • 详细描述

    Command Button Array(CBA)一般位于S60手机屏幕的最下方,如果手机支持横屏竖屏切换的话,那CBA的位置就不固定了(根据屏幕而定)。当S60 UI中的控制面板被正确放置后,可缩放程序应该知道CBA键的正确位置。

    • 解决方案

    在有些手机中(如Nokia E70, Nokia E90, Nokia N93, Nokia N95),在横屏模式下功能键将在屏幕左边或右边出现。如果程序需要基于方位对UI(功能键位置)做调整,可以通过

    AknLayoutUtils::CbaLocation();

    来获取CBA位置。

    我们将会得到下列放回值:

    enum TAknCbaLocation
     
    {
     
    EAknCbaLocationBottom, // landscape and portrait
     
    EAknCbaLocationRight, // only landscape
     
    EAknCbaLocationLeft // only landscape
     
    };

    当CBA定位在屏幕下部时,OK/Options键总是定义在左边,而相反的Cancel/Back键总是定义在右边。

    当CBA键在屏幕两端时,大部分设备的左功能键总是在下部,但也有列外,如Nokia E90,他就是在上部的位置。

    没有API可以直接解决功能键的顺序问题,但可以通过如下方法来监测出按键的位置:

    TBool IsOptionsButtonOnTop()
     
    {
     
    CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
     
    if( !cba )
     
    {
     
    return EFalse;
     
    }
     
     
     
    // Assumes that CBA has Options and Exit commands
     
    CCoeControl* options = cba->ControlOrNull( EAknSoftkeyOptions );
     
    CCoeControl* exit = cba->ControlOrNull( EAknSoftkeyExit );
     
     
     
    if( options && exit )
     
    {
     
    if( options->Position().iY < exit->Position().iY )
     
    {
     
    return ETrue;
     
    }
     
    }
     
    return EFalse;
     
    }

    Related Wiki Articles

    No related wiki articles found

  • 相关阅读:
    一个屌丝程序猿的人生(七十二)
    一个屌丝程序猿的人生(七十一)
    一个屌丝程序猿的人生(七十)
    一个屌丝程序猿的人生(六十九)
    一个屌丝程序猿的人生(六十八)
    一个屌丝程序猿的人生(六十七)
    Target-Action回调模式
    KVC & KVO
    ARC内存管理机制详解
    Objective-C中把URL请求的参数转换为字典
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/2039572.html
Copyright © 2011-2022 走看看