写个Android 调用相机的程序
以下是一个简单的Android调用相机的程序:
- 创建一个新的Android项目,并在布局文件中添加一个按钮。在MainActivity类中,为按钮添加一个点击事件:
public class MainActivity extends AppCompatActivity {
Button btnTakePicture;
static final int REQUEST_IMAGE_CAPTURE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnTakePicture = findViewById(R.id.btnTakePicture);
btnTakePicture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageBitmap(imageBitmap);
}
}
}
-
在dispatchTakePictureIntent()方法中,创建一个新的Intent,并设置其Action为MediaStore.ACTION_IMAGE_CAPTURE。这告诉Android系统我们要打开相机应用程序。
-
调用resolveActivity()方法来检查是否有应用程序可以处理我们的Intent。如果有,我们就使用startActivityForResult()方法来启动相机应用程序。
-
在onActivityResult()方法中,检查requestCode是否与我们启动相机时使用的requestCode相同,并检查resultCode是否为RESULT_OK。如果是,我们就获取相机应用程序返回的数据,并将它设置为ImageView的图像。
-
这个简单的程序就完成了。当用户点击按钮时,它将启动相机应用程序,并在拍摄照片后将其显示在ImageView中。
原文地址: https://www.cveoy.top/t/topic/bJEY 著作权归作者所有。请勿转载和采集!