目前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设计的方式直接保存图片(我将允许用户编辑它然后将其上传到互联网)所以如果有办法只是以某种方式获取预览图像
答案 0 :(得分:1)
原因是由于标志而从未调用过getPreviewSize方法。
如果getRecordingHint()返回ANY或VIDEO_ONLY,则CameraHost通过getPreferredPreviewSizeForVideo()而不是getPreviewSize()提供预览大小。如果您希望为视频使用不同的预览大小,请将其返回,否则返回null,我们将使用getPreviewSize()的结果。
所以我覆盖了getRecordingHint(),让cwac-camera知道我只处理静止图像,因此实际实现了我的自定义getPreviewSize方法
@Override
public RecordingHint getRecordingHint() {
return(RecordingHint.STILL_ONLY);
}