Android Don';t在纵向模式下拉伸相机预览内表面视图
我的代码所做的是从相机中拍摄图像,并在surfaceview中全屏显示,但预览是向上拉伸的(所以像瓶子这样的对象看起来比现实更高、更薄)。这是我的代码:Android Don';t在纵向模式下拉伸相机预览内表面视图,android,android-camera,surfaceview,Android,Android Camera,Surfaceview,我的代码所做的是从相机中拍摄图像,并在surfaceview中全屏显示,但预览是向上拉伸的(所以像瓶子这样的对象看起来比现实更高、更薄)。这是我的代码: public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Camera.Parameters params = mCamera.getParameters(); Camera.Size result
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Camera.Parameters params = mCamera.getParameters();
Camera.Size result = getBestPreviewSize(params, width, height);
params.setPreviewSize(result.width, result.height);
params.setPictureFormat(ImageFormat.JPEG);
params.setJpegQuality(100);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
params.setPictureSize(dpWidth, dpWidth);
params.setRotation(90);
mCamera.setParameters(params);
mCamera.startPreview();
}
public Camera.Size getBestPreviewSize(Camera.Parameters params, int width,
int height) {
Camera.Size result = null;
for (Camera.Size size : params.getSupportedPreviewSizes()) {
Log.d("size: ", size.width + ":" + size.height);
if (size.width <= width && size.height <= height) {
if (result == null) {
result = size;
} else {
int resultArea = result.width * result.height;
int newArea = size.width * size.height;
if (newArea > resultArea) {
result = size;
}
}
}
}
return result;
}
public void surfaceChanged(SurfaceHolder holder,int格式,int宽度,
整数高度){
Camera.Parameters params=mCamera.getParameters();
Camera.Size结果=getBestPreviewSize(参数、宽度、高度);
params.setPreviewSize(result.width、result.height);
参数setPictureFormat(ImageFormat.JPEG);
参数设置质量(100);
参数设置聚焦模式(相机参数聚焦模式连续图像);
参数setPictureSize(dpWidth,dpWidth);
参数设置旋转(90);
mCamera.setParameters(参数);
mCamera.startPreview();
}
公共摄像机.Size getBestPreviewSize(摄像机.Parameters参数,int-width,
整数高度){
Camera.Size结果=null;
对于(Camera.Size大小:params.getSupportedPreviewSizes()){
Log.d(“大小:,大小.宽度+:”+大小.高度);
如果(size.width)你的意思是像这个问题吗?是的,类似的,但我不使用横向模式,只使用纵向模式。你只是想减小SurfaceView的大小以保持相机输入的纵横比吗?我会全屏显示相机预览(在默认android相机内发生)不失真image@giozh你找到你问题的答案了吗?我也面临同样的问题