標籤:log pre 豎屏 cap art nal roi break bre
private OrientationEventListener mOrientationListener; private String TAG = "MainActivity"; private int screenCurOrient = 2; //1表示正豎屏,2表示正橫屏,3表示反豎屏,4表示反橫屏 private final void startOrientationChangeListener() { mOrientationListener = new OrientationEventListener(this) { @Override public void onOrientationChanged(int rotation) { //判斷四個方向 if (rotation == -1) { Log.d(TAG, "手機平放:" + rotation); } else if (rotation < 10 || rotation > 350) { screenOrientChange(1); } else if (rotation < 100 && rotation > 80) { screenOrientChange(4); } else if (rotation < 190 && rotation > 170) { screenOrientChange(3); } else if (rotation < 280 && rotation > 260) { screenOrientChange(2); } else { } } }; mOrientationListener.enable(); } private void screenOrientChange(int Orient) { if(Orient != screenCurOrient) { screenCurOrient = Orient; switch (screenCurOrient) { case 1: Log.d(TAG, "正豎屏:"); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case 2: Log.d(TAG, "正橫屏:"); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case 3: Log.d(TAG, "反豎屏:"); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case 4: Log.d(TAG, "反橫屏:"); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; } } }
在onCreate方法中調用startOrientationChangeListener方法即可。
android手機旋轉方向識別