在我的应用程序中,我有一个预览屏幕。在一台设备(LG,Android 2.2,320x480 屏幕)和另一台设备(HTC,Android 2.3,480x800 屏幕)上一切正常。在这两种情况下,支持的预览尺寸列表都包括一个完全适合屏幕尺寸的尺寸,我选择了它并且图像非常完美。问题出现在另一台设备上,其屏幕与第一台设备相似(三星、Android 2.3、320x480 屏幕)。不管我选择了适合屏幕尺寸的预览尺寸,就像以前的情况一样,图像不会保留其纵横比;圆圈呈椭圆形;图像沿屏幕的短轴被挤压。看来硬件本身为了获得 320x480 的预览,会压缩图像(相机的外形尺寸为 4:3,而屏幕的外形尺寸为 3:2)。Camera.Parameters.getHorizontalViewAngle和Camera.Parameters.getHorizontalViewAngle似乎很有帮助;他们在所有三个设备上给出相同的值!谁能帮我?
问问题
606 次
1 回答
3
经过更深入的调查,包括编写临时代码来检查预览在屏幕上的实际显示方式,这就是我发现的。在一台设备 (LG E-720) 上,预览图像被裁剪以获得 3:2 的外形尺寸,然后调整大小以适合屏幕。保留纵横比:
在第二台设备 (Samsung ACE) 上,预览图像似乎以不同的方式裁剪,生成 5:4 图像 (!?),然后调整大小以适应屏幕。由于外形尺寸不同,屏幕上的图像会出现挤压。:
我检查了第二个设备是否有可用的软件更新,但事实并非如此。因此,为了在屏幕上获得或多或少正确的图像,我将目标视图定义为 384 像素高;这实际上会导致恢复正确纵横比的裁剪。但是,由于原始裁剪是水平不对称的,它不能补偿小的水平偏移。
于 2012-10-22T08:23:08.493 回答