2012-03-29 114 views
2

我正在研究顯示相機預覽的Android應用程序。理想情況下,我希望該應用在肖像模式下工作,這意味着我需要處理相機預覽圖像的旋轉。Android 2.2。人像相機預覽

我只需要支持API級別8(Android版本2.2)及以上,這樣我就可以使用Camera.setDisplayOrientation設置方位,以及該方法的API文檔包括setDisplayOrientation函數,我想要做什麼。唯一的問題是它使用API​​ Level 9 Camera.CameraInfo來獲取相機相對於設備的方向(可能是爲了處理橫向vs縱向設備)。

因此,假設我可以爲所有8級設備設置setDisplayOrientation(90)並僅爲新設備使用CameraInfo.orientation,那麼安全嗎?

回答

1

作爲後續任何人發現這一點 - 我沒有找到一個明確的答案,所以我做了上述建議(setDisplayOrientation(90))爲2.2設備,併發布了應用程序。它有大約70,000次下載,並且沒有相機顯示屏錯誤旋轉90度的報告,所以看起來這是一個合理的解決方案。

0

我張貼的鏈接Android的開發者幫助相機件事: http://developer.android.com/guide/topics/media/camera.html

關於具體的問題,我在API接過來一看,我猜,因爲surfaceChanged方法被調用每次表面變化,設備只有2個位置,你可能是對的,因爲你在surfaceChanged方法中實現了更正的方法。嘗試實施它,如果你不能在問題後得到它,我會盡力幫助更多。

+0

我的問題是,這是否是一種安全的方式來做到這一點對所有** ** V2 .2設備。它在我的HTC Desire上運行良好,我只是不知道是否有默認的v2.2設備(例如),這可能不適用。 – 2012-04-03 02:52:23

+0

API是通用的。如果它對你的工作正常,它應該適用於其他2.2型號。是的,在我看來(6個月編程)這樣做很安全。 – Tomax 2012-04-09 15:05:44

2

我已經試過上的宏達電Evo Shift鍵設置爲API8項目如下(偉大的工作):

Configuration cfg = mContext.getResources().getConfiguration(); 
if (cfg.orientation == Configuration.ORIENTATION_PORTRAIT) { 
    mCamera.setDisplayOrientation(90); 
}