3

我有一个相机应用程序,在最简单的状态下,它只不过是带有一些“takePicture”代码的 cameraPreview 示例。在线示例的链接适用于 2.0,我正在针对 1.5(API lvl 3)进行开发,但仍然是:http: //developer.android.com/resources/samples/ApiDemos/src/com/示例/android/apis/graphics/CameraPreview.html

与旧版本最大的不同是整个“getOptimalPreviewSize”的东西。一切都是风景。

现在的问题是:我有一个预览,但是当我拍照时,那张照片上有更多信息,然后是预览。顶部和底部显示预览中不可见的内容。

现在我要在预览的顶部放置一个叠加层,以将图片中的对象与某些东西对齐。如果拍了照片,整个东西就会被挤压一点,我完全不对齐:(。

系统上的相机应用程序没有这个问题,所以应该可以解决这个问题。有什么想法吗?

如果我必须手动设置预览和/或图片大小,我猜我会在使用不同的手机时遇到问题,并且因为只有 API lvl 5 才有很多功能(例如:getOptimalPreviewSize),我不能使用这些。

4

2 回答 2

4

为 Android 构建了自定义相机应用程序后,我确切地知道您正在经历什么。截至 2011 年 10 月 29 日,Android 1.5 仅占 Android 用户的 1.1%。至少跳到 API 5 级会更好。如果你想在所有设备上一致地支持纵向和横向预览,我建议你甚至更高。

使用 getSupportedPreviewSizes() 和 getSupportedPicturesSizes()。这些功能可以准确地告诉您相机支持的功能(因手机/制造商而异)。遍历枚举并从两者中找到匹配的值。使用最适合您的那一款。

警告语:未能设置实际支持的预览和图片大小可能会导致您的应用在某些设备上崩溃。我亲眼目睹了这一点。

参考1.5 Android用户

于 2011-10-29T16:38:15.397 回答
1

返回的最大预览尺寸getSupportedPicturSizes代表相机的原始分辨率。如果该尺寸的纵横比与您的预览尺寸或您将Camera对象设置为的图片尺寸不同,则将发生裁剪。您可以比较纵横比以确定将裁剪多少以及在哪个方向上。(上/下与左/右)

于 2013-08-10T21:43:42.487 回答