android studio打开摄像头
时间: 2023-09-15 19:01:49 浏览: 175
Android 打开摄像头
### 回答1:
要在Android Studio中打开摄像头,您需要使用Camera API。以下是一些基本步骤:
1. 在AndroidManifest.xml文件中添加相机权限:
<uses-permission android:name="android.permission.CAMERA" />
2. 在布局文件中添加SurfaceView元素:
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. 在Activity中获取SurfaceView并设置它的回调:
private SurfaceView surfaceView;
private Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = findViewById(R.id.surfaceView);
surfaceView.getHolder().addCallback(surfaceCallback);
}
private SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
};
4. 在AndroidManifest.xml文件中添加相机特性:
<uses-feature android:name="android.hardware.camera" />
这些是基本步骤,您可以根据需要进行更改和扩展。
### 回答2:
要在Android Studio中打开摄像头,首先需要在AndroidManifest.xml文件中添加相机权限。在文件中添加以下代码:
<uses-permission android:name="android.permission.CAMERA" />
然后,在您的活动或碎片中添加一个SurfaceView或TextureView来显示摄像头预览。您可以在XML布局文件中添加以下代码:
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在Java文件中,您需要实现一些相机相关的类和接口。首先,您需要实现SurfaceHolder.Callback接口来获取SurfaceView对象。您可以在活动或碎片中的onCreate方法中添加以下代码:
SurfaceView surfaceView = findViewById(R.id.surfaceView);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
然后,您需要实现Camera.PreviewCallback接口,以获取相机预览帧。在onCreate方法中,您可以打开相机和设置预览回调:
Camera camera = Camera.open();
camera.setPreviewCallback(this);
Camera.Parameters parameters = camera.getParameters();
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
camera.setParameters(parameters);
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
最后,您需要实现SurfaceHolder.Callback接口的以下方法:
@Override
public void surfaceCreated(SurfaceHolder holder) {
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
这样,您就可以在Android Studio中成功打开摄像头并显示预览画面了。当然,您还可以根据需要添加其他功能,如拍照或录制视频等。
阅读全文