2011-04-08 20 views
0

我遇到了Android 2.2和屏幕 方向的問題。我有我的界面上的複選框是選中時,該 方向必須在當前方向鎖定的,所以我做了 下面的代碼:接口在臨時鎖定方向上顛倒

Activity a = (Activity) getContext(); 

if (isChecked) { 
    if (getResources().getConfiguration().orientation == configuration.ORIENTATION_LANDSCAPE) 
     a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) 
     a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
} else { 
    a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
} 

這樣做的問題是,如果我把顛倒的設備,我的 屏幕將旋轉到,並當我點擊我的「鎖定方向」, getResources()。getConfiguration()。orientation將返回 SCREEN_ORIENTATION_PORTRAIT和我的代碼將鎖定方向到 SCREEN_ORIENTATION_PORTRAIT和接口將是upside-下。

我可以看到,薑餅(http://developer.android.com/reference/ 的Android/R.attr.html#screenOrientation),有一個reversePortait和 reverseLandscape來解決這個問題,但我真的需要這個代碼在 2.2上運行,那麼無論如何設置屏幕顛倒?還是有 任何其他方式來鎖定旋轉?

+0

你有沒有解決這個問題?我有一個解決方案,比你的工作更好一些:http://stackoverflow.com/questions/6599770/screen-orientation-lock 它仍然沒有完全正常工作的蜂窩,因爲肖像被扭轉。 – 2011-07-07 00:22:01

回答

0

使用ScreenRotation。 ScreenOrientation已被棄用,不知道顛倒的縱向。

+0

你能發表一個代碼示例或指向這個文檔嗎?我沒有看到任何旋轉常量。 – 2011-07-07 00:21:13

+0

http://developer.android.com/reference/android/view/Display.html#getOrientation%28%29 – 2011-07-07 08:47:27

+0

Display.getOrientation() Since:API Level 1 此方法已棄用。 使用getRotation() – 2011-07-07 08:47:51