如何设置cwac-camera预览才能使用scaleType centerCrop?

时间:2014-06-17 06:35:06

标签: java android android-camera commonsware-cwac

目前cwac-camera(https://github.com/commonsguy/cwac-camera)放大图片预览,然后拍摄照片时尺寸不同。

我更喜欢的是它像Snapchat一样工作,图像被裁剪直到它填满整个屏幕,并且创建的图片做同样的事情。

遗憾的是,我找不到以这种低级别方式配置预览的方法。

我覆盖了getPreviewSize()并在其中放入了一个system.out,它似乎也永远不会被调用。变得非常困惑。

  @Override
  public Camera.Size getPreviewSize(
      int displayOrientation, int width,
      int height,
      Camera.Parameters parameters) {

      Camera.Size size = CameraUtils.getOptimalPreviewSize(displayOrientation,
              width, height,
              parameters);

      System.out.println("getPreviewSize: " + size.width+"x"+size.height);

      return size;

  }

所有我真正的目标都是让拍摄的照片与预览完全相同。

事实上,我甚至没有按照cwac-camera设计的方式直接保存图片(我将允许用户编辑它然后将其上传到互联网)所以如果有办法只是以某种方式获取预览图像

1 个答案:

答案 0 :(得分:1)

原因是由于标志而从未调用过getPreviewSize方法。

  

如果getRecordingHint()返回ANY或VIDEO_ONLY,则CameraHost通过getPreferredPreviewSizeForVideo()而不是getPreviewSize()提供预览大小。如果您希望为视频使用不同的预览大小,请将其返回,否则返回null,我们将使用getPreviewSize()的结果。

所以我覆盖了getRecordingHint(),让cwac-camera知道我只处理静止图像,因此实际实现了我的自定义getPreviewSize方法

  @Override
  public RecordingHint getRecordingHint() {
    return(RecordingHint.STILL_ONLY);
  }