Android studio 调用摄像头
  5LjHy9htuGLm 2023年12月06日 27 0

Android Studio 是一款功能强大的集成开发环境(IDE),用于开发 Android 应用程序。在开发 Android 应用程序时,我们经常需要使用设备的摄像头来拍摄照片或录制视频。本文将介绍如何使用 Android Studio 调用摄像头,并提供相关的代码示例。

在 Android 中,我们可以使用 Camera API 来访问设备的摄像头。首先,我们需要在 AndroidManifest.xml 文件中添加以下权限:

<uses-permission android:name="android.permission.CAMERA" />

接下来,我们需要在布局文件中添加一个 SurfaceView 元素,用于显示摄像头预览画面。在 activity_main.xml 文件中添加以下代码:

<SurfaceView
    android:id="@+id/surfaceView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

然后,在 MainActivity.java 文件中添加以下代码:

import android.hardware.Camera;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;

public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
    private Camera camera;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SurfaceView surfaceView = findViewById(R.id.surfaceView);
        SurfaceHolder surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        camera = Camera.open();
        try {
            camera.setPreviewDisplay(holder);
            camera.startPreview();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        if (holder.getSurface() == null) {
            return;
        }
        try {
            camera.stopPreview();
            camera.setPreviewDisplay(holder);
            camera.startPreview();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        camera.stopPreview();
        camera.release();
        camera = null;
    }
}

以上代码中,我们通过实现 SurfaceHolder.Callback 接口来监听 SurfaceView 的创建、改变和销毁事件。在 surfaceCreated 方法中,我们打开摄像头,并将预览画面显示在 SurfaceView 上。在 surfaceChanged 方法中,我们停止预览、重新设置预览界面并重新启动预览。在 surfaceDestroyed 方法中,我们停止预览并释放摄像头资源。

需要注意的是,Camera API 是 Android 5.0 之前的版本,自 Android 5.0 之后,Google 推荐使用 Camera2 API。使用 Camera2 API 可以提供更多的功能和更好的性能。

本文介绍了如何在 Android Studio 中调用摄像头,并提供了相关的代码示例。通过使用 Camera API,我们可以方便地实现摄像头的调用,以满足应用程序的需求。希望本文对你有所帮助!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
5LjHy9htuGLm