2011-03-28 63 views
2

有沒有辦法檢測設備方向事件或至少到 獲取當前設備方向,而在清單中使用 android:screenOrientation? 我的意思是設備方向不是應用程序方向。使用android檢測設備方向變化:screenOrientation

我的問題是我真的,以保持我的應用程序在波泰特模式 (這是一個Web視圖),但我想處理的方向改變自己在我的 應用程序。當設置android:screenOrientation時,方向得到 方法始終是應用程序方向,而不是設備 方向。

問候, 加埃唐

回答

0

我認爲好的方向(縱向或橫向),你得到的將永遠給你 「應用導向」 的價值觀。有關設備方向,您可以查看SensorManager.getOrientation

不幸的是,用於監聽此值更改的方法被標記爲廢棄,因此您可能需要定期輪詢。

1

如果你想自己處理裝置旋轉,然後用下面的方法:

@Override 
public void onConfigurationChanged(Configuration config) 
{ 
    super.onConfigurationChanged(config); 
    Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 

    if(display.getRotation() == Surface.ROTATION_90) 
    {   
     mFlash.startAnimation(mRotate); 
    } 
    if(display.getRotation() == Surface.ROTATION_90) 
    { 
     parameters.setPreviewSize(width, height);       
    } 

    if(display.getRotation() == Surface.ROTATION_180) 
    { 
     parameters.setPreviewSize(height, width);    
    } 

    if(display.getRotation() == Surface.ROTATION_270) 
    { 
     parameters.setPreviewSize(width, height); 
     mCamera.setDisplayOrientation(180); 
    } 

} 

裏面的if語句僅僅是可以完成的示例的動作。顯然,處理你需要的任何東西。