Android如何调用系统相机拍照

时间:2022-07-27
本文章向大家介绍Android如何调用系统相机拍照,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文实例为大家分享了Android调用系统相机拍照的具体代码,供大家参考,具体内容如下

/**
* 调用系统相机
*/
private void takePhoto() {
Uri uri = null;
if (which_image == FRONT_IMAGE) {
frontFile = new File(getSDPath() +"/test/front_" + getDate() + ".jpg");
uri = Uri.fromFile(frontFile);
} else if (which_image == BACK_IMAGE) {
backFile = new File(getSDPath() + "/test/back_" + getDate() + ".jpg");
uri = Uri.fromFile(backFile);
}
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
captureIntent.putExtra("return-data", true);
startActivityForResult(captureIntent, TAKE_PHOTO);
}
/**
* 获取系统时间
*
* @return
*/
public static String getDate() {
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR);      // 获取年份
int month = ca.get(Calendar.MONTH);     // 获取月份
int day = ca.get(Calendar.DATE);      // 获取日
int minute = ca.get(Calendar.MINUTE);    // 分
int hour = ca.get(Calendar.HOUR);      // 小时
int second = ca.get(Calendar.SECOND);    // 秒
String date = "" + year + (month + 1) + day + hour + minute + second;
return date;
}
/**
* 获取SD path
*
* @return
*/
public String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
return sdDir.toString();
}
return null;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO && resultCode == RESULT_OK) {
//      Bundle bundle = data.getExtras();
//      Bitmap bitmap = (Bitmap) bundle.get("data");
//      if (which_image == FRONT_IMAGE) {
//        ivCardFront.setImageBitmap(bitmap);
//      } else if (which_image == BACK_IMAGE) {
//        ivCardBack.setImageBitmap(bitmap);
//      }
try {
if (which_image == FRONT_IMAGE) {
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), frontFile.getAbsolutePath(), null, null));
ContentResolver contentResolver = this.getContentResolver();
Bitmap bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri));
ivCardFront.setImageBitmap(bitmap);
} else if (which_image == BACK_IMAGE) {
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), backFile.getAbsolutePath(), null, null));
ContentResolver contentResolver = this.getContentResolver();
Bitmap bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri));
ivCardBack.setImageBitmap(bitmap);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助。