Galaxy S4 Android自定义相机问题 [英] Galaxy S4 Android Custom Camera Issue

查看:191
本文介绍了Galaxy S4 Android自定义相机问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个带有自定义相机的应用程序。一切都在摩托罗拉Moto G工作正常,但当我尝试保存由银河S4拍摄的照片,它需要这方面:





CameraSurface.java

  @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);
}

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

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


解决方案

当您设置 setPreviewSize setPictureSize 时,必须 >具有相同的宽高比。如果您的方法确定PreviewSize(true,width,height)返回宽高比为16:9的尺寸,则需要使用SAME宽高比16:9设置PictureSize分辨率。



因此,解决方案是实现一个方法,该方法从 getSupportedPictureSizes()中选择与 determinPreviewSize(true,width,height)


I'm developing an app with a custom camera. Everything works fine in Motorola Moto G but when I try to save the pictures taken by a Galaxy S4, it takes this aspect:

CameraSurface.java

@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();
}

解决方案

I've found myself the solution for the problem described above.

When you set setPreviewSize and setPictureSize they MUST have the same aspect ratio. If your method determinePreviewSize(true, width, height) returns a size with aspect ratio 16:9 you need to setPictureSize a resolution with the SAME aspect ratio 16:9.

So the solution is to implement a method which selects from getSupportedPictureSizes() the best resolution that matches the aspect ratio given by determinePreviewSize(true, width, height)

这篇关于Galaxy S4 Android自定义相机问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆