一、前言
Android应用的摄像头功能是比较基础的功能之一,实现照片的拍摄功能可以满足用户在应用中的需求,例如社交类应用需要上传用户头像,或者是在线购物类应用需要拍摄商品照片等。本文将详细介绍如何在Android应用中调用摄像头并实现照片的拍摄功能。
二、实现步骤
1、添加权限
首先,在AndroidManifest.xml文件中添加以下权限:
    <uses-permission android:name="android.permission.CAMERA" />        //调用摄像头权限
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />      //写入SD卡权限
2、创建布局文件
在res/layout文件夹下创建布局文件,用于显示拍摄的照片。以下是示例代码:
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:contentDescription="@null"
            android:scaleType="centerCrop" />
        <Button
            android:id="@+id/btn_take_photo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Take photo" />
    </LinearLayout>
3、实现逻辑代码
创建MainActivity.java文件,并添加以下代码:
    public class MainActivity extends AppCompatActivity {
        private ImageView imageView;
        private Button btnTakePhoto;
        private static final int REQUEST_IMAGE_CAPTURE = 1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imageView = findViewById(R.id.imageView);
            btnTakePhoto = findViewById(R.id.btn_take_photo);
            btnTakePhoto.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dispatchTakePictureIntent();
                }
            });
        }
        private void dispatchTakePictureIntent() {
            Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
                startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
            }
        }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
                Bundle extras = data.getExtras();
                Bitmap imageBitmap = (Bitmap) extras.get("data");
                imageView.setImageBitmap(imageBitmap);
            }
        }
    }
4、运行应用
运行应用后,点击“Take photo”按钮,调用摄像头进行拍摄。拍摄完成后,照片会显示在imageView控件中。如下图所示:
三、总结
本文详细介绍了如何在Android应用中调用摄像头并实现照片拍摄功能,包括添加权限、创建布局文件、实现逻辑代码和运行应用等步骤。通过本文的学习,可以更好地掌握Android应用的摄像头功能,提升应用开发的能力。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/270716.html
 
 微信扫一扫
微信扫一扫  支付宝扫一扫
支付宝扫一扫 