第一步:先在 AndroidManifest.xml 添加照相机权限和文件读取权限,具体如下,在mainfest标签与application标签之间添加
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
第二步:拍照按钮响应事件,代码如下
//button_camera为拍照按钮ID
button_camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//通过Intent方式调用系统相机
Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//获取根目录,没有外存的话,就是系统根目录
String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath();
//给拍照获取的图像命名
String name = System.currentTimeMillis() + ".jpg";
//图像存放路径
imagePath = new File(rootPath + "/拍照按钮文件夹_" +新拍照片+ "/", name);
//判断该路径是否存在,不存在则创建
if (!imagePath.exists()) {
imagePath.getParentFile().mkdir();
}
// 设置图片输出路径
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imagePath));
// imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // 图片质量
QuestionActivity.this.startActivityForResult(imageCaptureIntent, 1);
}
});
运行程序后,在手机“文件管理”根目录下,可以发现“拍照按钮文件夹”,该文件夹下就是刚才所拍的照片。
本程序仅仅涉及到如何调用相机拍照及照片的存放,不涉及所拍照片的显示与预览等功能,后续将不断完善。