【问题标题】:How to set cwac-camera preview to use scaleType centerCrop?如何设置 cwac-camera 预览以使用 scaleType centerCrop?
【发布时间】:2014-06-17 06:35:06
【问题描述】:

目前 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 的设计方式直接保存图片(我将允许用户对其进行编辑,然后将其上传到互联网)所以如果有办法只需以某种方式获取预览图像也不错

【问题讨论】:

    标签: java android android-camera commonsware-cwac


    【解决方案1】:

    原来 getPreviewSize 方法由于一个标志而从未被调用过。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多