android 指定大小拍照
时间: 2023-08-16 22:02:10 浏览: 67
在Android中,要实现指定大小拍照,可以使用Camera类和SurfaceView来完成。
首先,需要在AndroidManifest.xml文件中添加相机权限:
<uses-permission android:name="android.permission.CAMERA"/>
然后,在布局文件中添加一个SurfaceView组件,作为相机预览的画面:
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
接着,在Activity中,获取SurfaceView的实例,并初始化相机:
SurfaceView surfaceView = findViewById(R.id.surfaceView);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
// 初始化相机
Camera camera = Camera.open();
try {
// 设置相机参数
Camera.Parameters parameters = camera.getParameters();
// 指定拍照图片的尺寸
parameters.setPictureSize(width, height);
// 设置相机预览的尺寸(可选)
parameters.setPreviewSize(previewWidth, previewHeight);
// 设置相机参数
camera.setParameters(parameters);
// 设置相机预览的显示器
camera.setPreviewDisplay(holder);
// 开始预览
camera.startPreview();
// 拍照
camera.takePicture(null, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
// 处理拍照结果
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
});
以上代码中,我们首先通过Camera.open()方法获取相机实例,然后使用相机参数Camera.Parameters设置拍照的尺寸,接着将SurfaceHolder用于设置相机预览的显示器,并调用camera.startPreview()开始预览画面。最后,通过camera.takePicture()方法实现拍照操作。
这样,我们就成功地在Android中实现了指定大小拍照的功能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)