0
我意識到這是一個重複的問題,但自從Android 2.3+(薑餅)以來,還沒有發佈和接受明確的答案。正確鎖定跨平臺版本屏幕方向的方法
我有代碼檢索我的Froyo手機和我的Honeycomb平板電腦當前的屏幕方向。我的問題是:
- 我在前薑餅版本, 檢索兩個方向我應該使用哪一個?
- 我應該使用什麼方法來設置方向/旋轉以將其鎖定到位?
這裏是因爲我有現在的方法(檢索,但不設定)
protected void lockCurrentOrientation() {
int orientation;
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD)
{
orientation = getResources().getConfiguration().orientation;
Log.d(LogTag, "Orientation via getConfiguration " + String.valueOf(orientation));
// Not working - reporting -1 (SCREEN_ORIENTATION_UNSPECIFIED)
// orientation = getRequestedOrientation();
// Log.d(LogTag, "Orientation via getRequestedOrientation " + String.valueOf(orientation));
orientation = display.getOrientation();
Log.d(LogTag, "Orientation via WindowManager " + String.valueOf(orientation));
}
else
{
orientation = display.getRotation();
Log.d(LogTag, "Orientation via Display.getRotation " + String.valueOf(orientation));
}
}
我的代碼示例已經做到了。我在問什麼是正確的方式來設置它。在旋轉的情況下,文檔說返回的值是相對於設備的「自然方向」的角度,但我知道如何設置方向的唯一方法是通過setRequestedOrientation傳遞引用定向值的常量,而不是相對角度以自然的方向 – Rich