gpt4 book ai didi

Android相机预览: 1:1 aspect ratio,怎么办?

转载 作者:可可西里 更新时间:2023-11-01 18:48:03 33 4
gpt4 key购买 nike

嗨我正在尝试使用相机在我的一个应用程序中捕捉图像。特别的是我需要一个方形的预览区域(最后是图片)。我尝试将图片和预览的大小定义为 1:1 的像素比,但没有任何效果。无论我做什么,图片看起来都被“压扁”在一个正方形上。

有人知道如何解决这个问题吗?

代码:

public class AddFromCameraActivity extends Activity implements SurfaceHolder.Callback {
private Camera mCamera;
private Parameters mParameters;
private SurfaceView mCameraPreview;
private SurfaceHolder mSurfaceHolder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addimagefromcameramain);
initialise();
//Testing area
mCamera = Camera.open();
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
mParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
mParameters.setJpegQuality(50);
mParameters.setJpegThumbnailQuality(50);
mParameters.setPictureSize(1024, 1024);
//mParameters.setPreviewFormat(ImageFormat.JPEG);
mParameters.setJpegThumbnailSize(256, 256);
mParameters.setPreviewSize(500, 500);
mCamera.setParameters(mParameters);
}
private void initialise()
{
mCameraPreview = (SurfaceView)findViewById(R.id.cameraSurfaceView);
mSurfaceHolder = mCameraPreview.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceHolder.setFixedSize(500, 500);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {

}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mCamera.release();
}
@Override
public void onPause()
{
mCamera.release();
}
}

谢谢

最佳答案

你可以看看CameraPreview sample来自 Android SDK 的代码。 getOptimalPreviewSize 方法展示了如何处理不同的相机尺寸,onLayout 方法展示了如何在 Activity 中布局预览界面。

关于Android相机预览: 1:1 aspect ratio,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5882917/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com