Android - 拍摄的照片与预览不同

3
我有一个相机应用程序,最简单的状态只是带有一些“takePicture”代码的cameraPreview示例。在线示例的链接是用于2.0版本的,而我正在开发1.5(API lvl 3)对抗它,但是这里它是:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html 旧版的最大区别在于整个“getOptimalPreviewSize”的问题。一切都是横向完成的。
现在的问题是:我有一个预览,但当我拍照时,图片上有更多信息。顶部和底部显示了预览中看不到的内容。
现在我将在预览顶部放置一个叠加层,以使图像中的对象与某些东西对齐。如果拍摄了照片,则整个事情会被压缩一些,然后我就无法对齐:(。
系统上的相机应用程序没有这个问题,所以必须能够修复此问题。有什么想法吗?
如果我必须手动设置预览和/或图片大小,我想我会在不同的手机上遇到麻烦,而且因为有很多函数只适用于API lvl 5及以上(例如:getOptimalPreviewSize),所以我不能使用这些。

1
即使运行相同的Android版本(如2.1update1)的设备之间也有差异。在我的情况下,我使用HTC Desire / Nexus One和Samsung Galaxy S存在问题/差异,请参见此帖子:https://dev59.com/yE7Sa4cB1Zd3GeqP8PYq。 - Mathias Conradt
我目前由于一些问题,不会处理肖像和旋转。因为我正在使用1.5版本,所以无法使用getSupportedPreviewSizes函数。 - Ennan
2个回答

4
建立一个自定义的Android相机应用程序后,我知道你正在经历什么。截至2011年10月29日,Android 1.5仅占Android用户的1.1%。如果您想在所有设备上一致支持纵向和横向预览,则最好跳至至少API级别5。如果您想要支持纵向和横向预览,建议您使用getSupportedPreviewSizes()和getSupportedPicturesSizes()函数,这些函数告诉您相机支持的确切规格(因手机/制造商而异)。运行枚举并从两个中找到匹配的值。使用最适合您的那一个。警告:未设置实际支持的预览和图片大小可能会导致您的应用程序在某些设备上崩溃。我亲眼见过这种情况。参考1.5 Android用户

1
<最大的预览尺寸由 getSupportedPictureSizes 返回,它代表相机的本机分辨率。如果该尺寸的长宽比与您的预览大小或您设置的图片大小不同,则会进行裁剪。您可以比较长宽比以确定将裁剪多少以及在哪个方向(上/下与左/右)。>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接