在我的應用程序中我有一個預覽屏幕。在一臺設備(LG,Android 2.2,320x480屏幕)和另一臺(HTC,Android 2.3,480x800屏幕)一切正常。在這兩種情況下,支持的預覽尺寸列表都包含完全符合屏幕尺寸的預覽尺寸列表,我選擇它並且圖像非常完美。 問題來自另一個設備,有一個屏幕類似於第一個(三星,Android 2.3,320x480屏幕)。無論我如何選擇適合屏幕尺寸的預覽尺寸(如以前的情況),圖像不會保留其縱橫比;圓圈出現橢圓形;圖像沿着屏幕的短軸被擠壓。看起來硬件本身,爲了獲得320x480預覽,擠壓圖像(相機的外形尺寸爲4:3,而屏幕的外形尺寸爲3:2)。 因此,爲了適應相機的外形尺寸(尺寸:360x480),我修改了預覽顯示視圖的佈局參數,這部分解決了問題;實際上,爲了完全解決問題,我必須設置380x480(! !!) 事實上,我找不到任何可以告訴我這種不同行爲的API,這樣我就可以自動補償它,甚至連Camera.Parameters.getHorizontalViewAngle和Camera.Parameters.getHorizontalViewAngle似乎都沒有幫助;它們給出了相同的值在所有三款器件的! 誰能幫助我?預覽高寬比在不同設備上有所不同
1
A
回答
3
順藤摸瓜後,即包括編寫特殊的代碼,以檢查如何預覽實際上是顯示在屏幕上,這是我發現了什麼。 在一個設備(LG E-720),預覽圖像按照t的順序裁剪Ø獲得3:2的外形尺寸,然後調整大小以適應屏幕。保留長寬比:
在第二個設備(Samsung ACE)上,預覽圖像顯示爲以不同方式裁剪,導致5:4圖像(!?),然後調整大小以適合在屏幕上。由於不同的外觀因素,屏幕上的圖像出現擠壓。:
我已檢查是否有軟件更新可用於第二個設備,但這並不適用於此案例。因此,爲了在屏幕上獲得或多或少正確的圖像,我已將目標視圖定義爲384像素高;這實際上導致裁剪恢復正確的寬高比。然而,由於原始裁剪是水平不對稱的,因此它不會補償水平偏移。
相關問題
- 1. AppCompatButton的高度在設備上有所不同嗎?
- 2. TextView Size在不同的設備上有所不同
- 3. Endian在不同設備上的行爲有所不同
- 4. 寬高比不同的移動設備屏幕
- 5. 保持不同設備的高寬比和自動佈局
- 6. jQuery視頻在不同設備上的高度和寬度?
- 7. Android的createbitmap寬度在不同的設備上表現不同
- 8. 在不同設備上顯示不同設備上的NSDate
- 9. 圖片大小不應該在Android設備上有所不同
- 10. Android WebView不提取所有在不同設備上的cookie
- 11. openGLES在不同設備上
- 12. 不同設備上的不同幀?
- 13. 不同設備上的不同頁面
- 14. 爲什麼日期格式在不同設備上有所不同?
- 15. 如何在不同的設備上設置不同的dpi高度
- 16. Android texSubImage2D - 在不同的設備上有不同的行爲嗎?
- 17. 在所有設備上使自舉盒的高度相同
- 18. Android定向傳感器針對不同設備有所不同?
- 19. 不同設備的像素大小是否有所不同?
- 20. 不同的Android設備的uri地址有所不同嗎?
- 21. 製作具有不同高寬比的響應圖像高度相同
- 22. BLE在不同設備上的不同外設名稱
- 23. 查找不同設備的高度和寬度
- 24. 在不同的瀏覽器和設備上呈現不同的HTML
- 25. 如何在不同的設備上創建網站的預覽圖像
- 26. 爲什麼日期對象的字符串格式在不同區域的不同設備上有所不同?
- 27. XML預覽看起來不同於設備
- 28. IE瀏覽器有不同的高度/寬度爲div比火狐
- 29. CGrectMake自動在不同的設備上的寬度
- 30. 在調整頁面大小或在不同設備上查看頁面時保持寬高比
根據我的經驗,如果不是所有的三星設備都會出現這種問題。我找不到比我的代碼庫中有永久性開關更好的解決方案..我不喜歡這個。 – Vlad