2012-10-18 63 views
1

在我的應用程序中我有一個預覽屏幕。在一臺設備(LG,Android 2.2,320x480屏幕)和另一臺(HTC,Android 2.3,480x800屏幕)一切正常。在這兩種情況下,支持的預覽尺寸列表都包含完全符合屏幕尺寸的預覽尺寸列表,我選擇它並且圖像非常完美。 問題來自另一個設備,有一個屏幕類似於第一個(三星,Android 2.3,320x480屏幕)。無論我如何選擇適合屏幕尺寸的預覽尺寸(如以前的情況),圖像不會保留其縱橫比;圓圈出現橢圓形;圖像沿着屏幕的短軸被擠壓。看起來硬件本身,爲了獲得320x480預覽,擠壓圖像(相機的外形尺寸爲4:3,而屏幕的外形尺寸爲3:2)。 因此,爲了適應相機的外形尺寸(尺寸:360x480),我修改了預覽顯示視圖的佈局參數,這部分解決了問題;實際上,爲了完全解決問題,我必須設置380x480(! !!) 事實上,我找不到任何可以告訴我這種不同行爲的API,這樣我就可以自動補償它,甚至連Camera.Parameters.getHorizontalViewAngleCamera.Parameters.getHorizontalViewAngle似乎都沒有幫助;它們給出了相同的值在所有三款器件的! 誰能幫助我?預覽高寬比在不同設備上有所不同

回答

3

順藤摸瓜後,即包括編寫特殊的代碼,以檢查如何預覽實際上是顯示在屏幕上,這是我發現了什麼。 在一個設備(LG E-720),預覽圖像按照t的順序裁剪Ø獲得3:2的外形尺寸,然後調整大小以適應屏幕。保留長寬比: enter image description here

在第二個設備(Samsung ACE)上,預覽圖像顯示爲以不同方式裁剪,導致5:4圖像(!?),然後調整大小以適合在屏幕上。由於不同的外觀因素,屏幕上的圖像出現擠壓。: enter image description here

我已檢查是否有軟件更新可用於第二個設備,但這並不適用於此案例。因此,爲了在屏幕上獲得或多或少正確的圖像,我已將目標視圖定義爲384像素高;這實際上導致裁剪恢復正確的寬高比。然而,由於原始裁剪是水平不對稱的,因此它不會補償水平偏移。

+0

根據我的經驗,如果不是所有的三星設備都會出現這種問題。我找不到比我的代碼庫中有永久性開關更好的解決方案..我不喜歡這個。 – Vlad

相關問題