我正在开发一个相机应用程序,主要是作为消息应用程序的一部分来附加图像等。该应用程序需要适用于 >= SDK 2.2,并且:
我不能使用默认的Android相机,因为:
应用程序的性质决定了图像不应该被保存到磁盘上,但一些OEM(如三星)会在没有给你选择的情况下这样做。
我不能调用其他任何相机应用程序可以拦截的intent,因为那个应用程序可能会保存图像。
我的当前问题是处理Android相机显然不喜欢竖屏方向的事实。具体而言,在某些挖掘后,我正在监视显示器,并在旋转时调用 setDisplayOrientation(90)
。这个方法有效,但surfaceview的维度也需要被更改,并且必须在支持的维度范围内完成,否则参数设置将导致应用程序崩溃。
我正在使用另一个SO片段(getBestPreviewSize() 方法)来解决这个问题,但它有一个明显的问题,我不敢相信我没找到其他人遇到这个问题。
拍照生命周期的一部分涉及调用PostView图像回调。这是显示当前暂停的SurfaceView图像的静态图像,将通过byteArray返回到原始和/或jpeg回调。我的问题是,在一些似乎是随机的测试设备上,这张图片仍然会被扭曲!因此,用户看到一个完美的4:3宽高比的动态相机图像,直到他们拍摄照片并且所呈现的图像被压缩。请注意,字节数组本身是正确的,而当我在消息端点构建Bitmap时,它也正常显示,但这仍然是一个问题。
我无法看到如何在此时更改静态图像的显示。有人可以帮助我解决这个问题吗?