在我的应用程序中我有一个预览屏幕。在一台设备(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