我正在编写的应用程序需要相机功能。
因此,为了了解如何操作相机,我遵循了以下脚本:
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
我已将该活动放入清单中,将其屏幕方向设置为横向模式。
我遇到的问题是,当相机横向放置时(因此我将 Galaxy Tab P1000 横向放置),视图会被拉伸。
为了更具体地说明我的脚本,我使用了 Google 制作的代码的精确副本。它可以在 android-sdk\samples\android-8\ApiDemos\src\com\example\android\apis\graphics\ 中找到
该文件本身称为 CameraPreview。
我真的不知道为什么屏幕看起来这么拉伸。当然,格式很奇怪而且不是方形的,但是,当使用设备上安装的默认相机应用程序时,它根本不会变形。当我将相机横向握住并稍微移动相机时,图像就会变形。
我所做的是:我拿着我的 Galaxy 标签给一个物体(在本例中是笔记本电脑)拍照,然后用我的 Galaxy 手机拍了一张照片。在 Galaxy 上,我在我正在制作的应用程序中打开了相机屏幕。这对于两个图像都很重要。一张我横向拿着,一张我纵向拿着。照片有点不清楚,但你可以看到在风景照片中,相机变得非常宽。
我昨天遇到了同样的问题。在研究“相机”来源后,我发现了相机预览被拉伸的原因。
原因是:SurfaceView 的宽高比(宽度/高度)必须与预览参数中使用的 Camera.Size 宽高比相同。如果长宽比不一样,你就会得到拉伸的图像。
因此,最快的解决方法是将 SurfaceView 设置为 320px x 240px 之类的大小 - 来自Parameters.getSupportedPreviewSizes() 的最小支持大小。
另外,您可以查看Camera标准应用程序源代码,它使用自定义布局来控制SurfaceView大小(请参阅PreviewFrameLayout.java,onMeasure()函数)。
Use
克隆https://android.googlesource.com/platform/packages/apps/Camera.git https://android.googlesource.com/platform/packages/apps/Camera.git
获取相机源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)