2011-08-02 85 views
0

我正在使用相機的android中的應用程序,我面臨以下問題。在android中使用相機

1.如果我只是簡單地拍攝一張沒有特殊設置的照相機(我的意思是方向設置),那麼預覽和我的結果圖像將如下所示: http://i51.tinypic.com/xfx3jq.png這是不正確的。 現在我用這張圖片做的事情就是將它上傳到一個網站,網站的設置方向是一樣的!

2.如果我安裝我的LANDSCAPE模式的活動,然後我的照片看起來就像這樣: http://i56.tinypic.com/152c41e.png與按鈕設置你seee.And任何額外的視圖方式是設置錯了也喜歡在這裏:http://i56.tinypic.com/16ifxqx.png這是錯誤的極端。 而最重要的是,當我將圖片上傳到網站時,並非正確定位,它看起來像這樣:http://i51.tinypic.com/xfx3jq.png

我應該如何繼續爲了得到一個正確的方向圖片與額外的視圖正常看,當我上傳到網站也看垂直方向??? 謝謝!

我必須說我在android中建立自己的相機。

編輯:我試過

​​

但在我的形象沒有任何效果!

編輯:

在我onCreate()我設置我的方向是這樣的:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

這讓我的形象看起來我想要的樣子,但我的觀點是建立誤入歧途,當我將圖像加載到網站,它會回到最初的方向!

回答

0

舊的Android版本有關於相機方向的一個bug,添加以下內容到的onCreate() - 方法應該解決這個問題(爲了向後兼容,這也是在新的Android版本的情況下):

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

這與你想要的方向無關。但要小心:這將有助於很多手機,但例如將在三星手機上大失敗破,因爲他們似乎已經解決了這個問題,打破了向後兼容性。對於那些你可以添加這樣的事情(但這些設備):

Camera.Parameters parameters = camera.getParameters(); 
parameters.set("orientation", "portrait"); 
parameters.set("rotation", "90"); 

看一看這裏進一步的信息:Orientation Problem in Camera

+0

請看看我的最新edit.I需要的東西,應該工作在我的圖像上不是在我的活動中,因爲我正在保存圖像並進一步處理它。或者將LANDSCAPE模式方向定位修正爲它在屏幕上的顯示方式,但圖像仍然保存錯誤! – adrian

+0

我正在使用索尼愛立信,當我嘗試旋轉圖片/設置參數時,沒有變化 - 就像這些線條一樣,參數.set(「orientation」,「portrait」); parameters.set(「rotation」,「90」); 沒有效果! – adrian

+0

你是對的,修復只修復了錯誤的預覽顯示,否則看起來很奇怪。如果您針對2.1進行開發,您需要提到的黑客才能獲得正確的預覽顯示。如果將您的應用程序限制爲2.2或更高版本,則可以使用Camera對象上的「setDisplayOrientation(int degrees)」進行旋轉,並仍然有工作方向檢測,從而得到適當的橫向圖像。使用2.1時,您需要手動旋轉它(使用Matrix-Class),它通常會在具有16MB應用程序堆的設備上崩潰。順便說一句。因爲有很多其他問題,我現在使用內置相機應用程序... – HefferWolf