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

时间:2011-11-25 23:49:40

标签: android android-camera

我正在开发一个应用程序,允许用户拍照,然后它在后台做一些工作,但我遇到了一个问题,我已经硬编码图片大小,它导致错误的不同电话到我正在使用的那个,即时通讯假设它不支持相机尺寸,我已经硬编码。

我已经在这里阅读了关于它但是答案是含糊不清的所有人一直说是使用getSupportedSizes方法,但我不知道在那之后该如何处理它。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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);

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