Joe*_*ing 22 java camera android landscape stretched
我正在写的应用程序需要相机功能.因此,要了解如何操作相机,我遵循以下脚本:
我已将活动放入清单中,在横向模式下为其设置屏幕方向.
我遇到的问题是,当相机被侧向握住时(所以我将Galaxy Tab P1000保持在横向位置),视图就会伸展开来.
为了更具体地说明我的脚本,我使用了Google制作的完整代码副本.它可以在android-sdk\samples\android-8\ApiDemos\src\com\example\android\apis\graphics \中找到
该文件本身称为CameraPreview.
我真的不知道为什么屏幕看起来如此拉伸.当然,格式很奇怪而不是方形,但是当使用设备上安装的默认相机应用程序时,它根本不会变形.当我将图像侧向握住并将相机移动一点时,此相机会使图像变形.


我做的是:我拿着我的星系标签来拍摄物体的照片(在这种情况下是笔记本电脑),然后用我的银河手机拍了一张照片.在Galaxy上我在我正在制作的app中打开相机屏幕.这对两个图像都很重要.一个我侧身,一个我在纵向视图中.照片有点不清楚,但你可以看到,在风景画中,相机变得非常宽.
Lor*_*ord 21
我昨天遇到了同样的问题.在研究了"相机"来源之后,我找到了相机预览被拉伸的原因.
原因是:SurfaceView纵横比(宽度/高度)必须与预览参数中使用的Camera.Size纵横比相同.如果纵横比不一样,你就会得到拉伸的图像.
因此,最快的解决方法是将SurfaceView设置为320px x 240px的大小 - 来自Parameters.getSupportedPreviewSizes()的最小支持大小.
此外,您可以查看Camera标准应用程序源,它使用自定义布局来控制SurfaceView大小(请参阅PreviewFrameLayout.java,onMeasure()函数).
使用
git clone https://android.googlesource.com/platform/packages/apps/Camera.git
获取相机来源.
小智 7
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
try {
camera = Camera.open();
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(holder);
Camera.Parameters parameters = camera.getParameters();
List<Size> sizes = parameters.getSupportedPictureSizes();
parameters.setPictureSize(sizes.get(0).width, sizes.get(0).height); // mac dinh solution 0
parameters.set("orientation","portrait");
//parameters.setPreviewSize(viewWidth, viewHeight);
List<Size> size = parameters.getSupportedPreviewSizes();
parameters.setPreviewSize(size.get(0).width, size.get(0).height);
camera.setParameters(parameters);
camera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
您只需getSupportedPreviewSizes()将其保存到List:
List<Size> size = parameters.getSupportedPreviewSizes();
parameters.setPreviewSize(size.get(0).width, size.get(0).height);
camera.setParameters(parameters);
camera.startPreview();
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你.
| 归档时间: |
|
| 查看次数: |
10065 次 |
| 最近记录: |