在Android手机上设置相机分辨率

Roy*_*her 1 android android-camera

即时开发一个应用程序,允许用户拍照,然后它在后台做一些工作,但我遇到了一个问题,我已经硬编码图片大小到它,它导致错误在另一个手机上一个我正在使用和我假设它下降到手机不支持我硬编码的相机大小.

我已经在这里阅读了它,但答案是模糊的所有人一直说是使用getSupportedSizes方法,但我只是不知道如何处理它之后.

任何帮助将不胜感激.

Gen*_* S. 6

使用此方法很重要,因为不同设备上的摄像头支持非常不同的分辨率,因此,您必须指定您希望在给定设备上可用的分辨率.

伪....

    Camera.Parameters cp = mCamera.getParameters();

    List<Size> sl = cp.getSupportedPictureSizes();

//now that you have the list of supported sizes, pick one and set it back to the parameters...
   int w,h;
   for(Size s : sl){
      //if s.width meets whatever criteria you want set it to your w
      //and s.height meets whatever criteria you want for your h
      w = s.width;
      h = s.height;
      break;


   }

   cp.setPictureSize(w, h);

  mCamera.setParameters(cp);
Run Code Online (Sandbox Code Playgroud)

通常最重要的是照片的宽高比.因此,您需要将w/h与16:9或4:3进行比较,然后在支持的比率下找到最高(或第二高)质量.显然,我不知道您的需求是什么,因此您必须确定实际符合您给定标准的尺寸.如果您只是想要最高质量并且不关心宽高比,那么您通常会发现它是尺寸列表中的最后一项.