управление ориентацией экрана Blackberry

Я хочу отображать предупреждение каждый раз, когда пользователь меняет ориентацию мобильного телефона. Есть способ зафиксировать это движение? Я использую Display.getOrientation();. Но он всегда возвращает 32 в другой ориентации.


person mobileDeveloper    schedule 09.01.2012    source источник


Ответы (2)


Примечание: когда вы проверяете ориентацию, вы должны закрыть SLIDER в симуляторе 9800, иначе он не будет работать.

попробуйте следующий код:

public class checkOrientation 
{
     VerticalFieldManager manager;int ori;
      public checkOrientation()
    {
        ori=Display.getOrientation();
        manager=new VerticalFieldManager()
        {
            protected void sublayout(int maxWidth, int maxHeight) {
                super.sublayout(Display.getWidth(),Display.getHeight());
                setExtent(Display.getWidth(),Display.getHeight());
                if(ori!=Display.getOrientation()){
                    UiApplication.getUiApplication().invokeLater(new Runnable() {
                        public void run() {
                            ori=Display.getOrientation();
                            Dialog.inform(""+Display.getOrientation());
                        }
                    });
                }
            }
        };
        add(manager);
    }

}
person Govindarao Kondala    schedule 09.01.2012

Вы получаете вызов sublayout() при изменении ориентации. Вы можете сохранить displaywidth в переменной, и если значение изменилось в sublayout() , вы знаете, что ориентация изменилась.

нравится.

protected void sublayout(int width, int height) {
         if(Display.getWidth()==oldWidth)
         { 
             //no change
         }
         else
         {   
             // orientation changed
         }
            oldWidth = Display.getWidth();
            super.sublayout(width, height);
    }
person rfsk2010    schedule 09.01.2012