CameraPreview.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:SmartMath 作者:
public void setCamera(Camera camera) {
     mCamera = camera;
     if (mCamera != null) {
      Parameters parameters = mCamera.getParameters();
         mSupportedPreviewSizes = parameters.getSupportedPreviewSizes();
List<Integer> formatsList = parameters.getSupportedPreviewFormats();    //get supported preview formats
if(formatsList.contains(ImageFormat.NV21)) {    // formatsList is always not null.
    parameters.setPreviewFormat(ImageFormat.NV21);      //set preview format is NV21,default is NV21 (yuv420sp)
}

    //  Set Focus mode depending on what is supported. MODE_AUTO is 
    //  preferred mode.
// need not to test supported mode coz it has been tested in main activity.
    if (msnFocusMode == 2)  {
        parameters.setFocusMode( Camera.Parameters.FOCUS_MODE_INFINITY );
    } else if (msnFocusMode == 1)   {
        parameters.setFocusMode( Camera.Parameters.FOCUS_MODE_FIXED );
    } else  {
        // set to auto focus by default
        parameters.setFocusMode( Camera.Parameters.FOCUS_MODE_AUTO);
    }

    /*if ((parameters.getMaxExposureCompensation() != 0 || parameters.getMinExposureCompensation() != 0)
            && ActivitySettings.msnPhotoTakenFrom == 1) {   // screen mode.
        parameters.setExposureCompensation(parameters.getMaxExposureCompensation());
      } */
    parameters.setExposureCompensation(0);  // exposure is not adjusted. Seems that screen mode does not bring much benefit.


List<String> scenesList = parameters.getSupportedSceneModes();
if (scenesList != null && scenesList.contains(Camera.Parameters.SCENE_MODE_STEADYPHOTO)) {
    parameters.setSceneMode(Camera.Parameters.SCENE_MODE_STEADYPHOTO);  // this may crash in some devices.
}
boolean bSuccessful = setCameraParams(mCamera, parameters);

      requestLayout();
     } 
 }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号