android 调用系统相机

时间:2023-03-09 17:43:19
android 调用系统相机

// 调用相机拍照的请求码
public static final int REQUEST_TAKE_PHOTO_CODE = 1;
public static final int REQUEST_TAKE_PHOTO_CODE2 = 2;
// 拍照后显示图片的ImageView

private void startTakePhoto2() {
// 启动系统相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 启动activity并获取返回数据
startActivityForResult(intent, REQUEST_TAKE_PHOTO_CODE2);
}
/**
* 跳转到系统相机拍照
*/
private void startTakePhoto() {
// 启动系统相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 设置拍照后保存的图片存储在文件中
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
// 启动activity并获取返回数据
startActivityForResult(intent, REQUEST_TAKE_PHOTO_CODE);
}

/**
* 判断是否有SD卡
*
* @return 有SD卡返回true,否则false
*/
private boolean hasSDCard() {
// 获取外部存储的状态
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// 有SD卡
return true;
}
return false;
}
/**
* 初始化存储图片的文件
*
* @return 初始化成功返回true,否则false
*/
private boolean initImageFile() {
// 有SD卡时才初始化文件
if (hasSDCard()) {
// 构造存储图片的文件的路径,文件名为当前时间
String filePath = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ "/"
+ System.currentTimeMillis()
+ ".png";
imageFile = new File(filePath);
if (!imageFile.exists()) {// 如果文件不存在,就创建文件
try {
imageFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
return false;
}