2012-01-09 102 views
0

我想每当用户更改手机的方向时显示警报。有一种方法可以捕捉到这种打击? 我使用Display.getOrientation();。但它总是以不同的方向返回32。控制屏幕方向黑莓

回答

0

注:当你检查你的方向在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); 
    } 

} 
3

当方向更改时,您会拨打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); 
    }