首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义相机问题

自定义相机问题
EN

Stack Overflow用户
提问于 2015-02-03 17:11:41
回答 1查看 364关注 0票数 2

我正在开发一个带有自定义摄像头的应用程序。在摩托罗拉Moto G中,一切都很好,但是当我试图保存由Galaxy S4拍摄的照片时,它就有以下几个方面:

CameraSurface.java

代码语言:javascript
运行
复制
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    Camera.Size previewSize = determinePreviewSize(true, width, height);
    Camera.Parameters parameters = camera.getParameters();

    camera.setDisplayOrientation(90);


    parameters.setPreviewSize(previewSize.width, previewSize.height);


    List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
    Camera.Size size = sizes.get(0);
    for (int i = 0; i < sizes.size(); i++) {
        if (sizes.get(i).width > size.width)
            size = sizes.get(i);
    }

    parameters.setPictureSize(size.width,size.height);

    parameters.set("display_mode","portrait");
    camera.setParameters(parameters);
    camera.startPreview();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 18:05:42

我已经找到了上述问题的解决方案。

当您设置setPreviewSizesetPictureSize时,它们必须具有相同的纵横比。如果您的方法determinePreviewSize(真、宽、高)返回高宽比为16:9的大小,则需要将相同高宽比为16:9的分辨率进行setPictureSize。

因此,解决方案是实现一种方法,从getSupportedPictureSizes()中选择与determinePreviewSize(真、宽、高)给出的高宽比匹配的最佳分辨率。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28304792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档