Android 4.2设备方向

时间:2013-04-09 18:45:01

标签: android orientation

我在android 4.2上遇到了问题。我试图找出,如果屏幕是横向或纵向。我知道以下方法:

  1. 这完全有效,除了它在API等级8之后折旧

    Display display = ((WindowManager) 
                  getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    int orientation = display.getOrientation();
    
  2. 这是在android 4.2上计算方向的首选方法。但是,此方法仅返回旋转度,而不正确用于确定当前设备配置(横向或方向)

    WindowManager wManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    int rotation = wManager.getDefaultDisplay().getRotation();
    
  3. 无论设备的默认方向如何,我都需要知道当前的旋转(横向或纵向)。我很感激你对此事的任何帮助。

    谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试:

int orientation = getResources().getConfiguration().orientation;

if (orientation == Configuration.ORIENTATION_LANDSCAPE)
{
// code
} else if (orientation == Configuration.ORIENTATION_PORTRAIT)
{
// code
}

答案 1 :(得分:1)

这应该有用......

   Activity.getResources().getConfiguration().orientation

它会告诉您它的横向或纵向,但不会区分反向(即反向横向)。

您还可以覆盖onConfigurationChanged方法

public void onConfigurationChanged(Configuration _newConfig)