调用相机照相并保存在指定路径
private void getFromCamera(Uri imageUri) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { imageUri = FileProvider.getUriForFile(MainActivity.this, "com.can.cameracapture", fileUri);//通过FileProvider创建一个content类型的Uri intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); } Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0); startActivityForResult(intent, 0x777); } //onActivityForResult //保存路径 //data.getData(), //缩微图 //Bitmap thumbnail = data.getParcelableExtra("data");系统裁剪图片
private void cutePic(Uri imageUri) { Log.i(TAG, "Cutr picture"); Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(imageUri, "image/*");// intent.putExtra("aspectX", 1);//裁剪框比例 intent.putExtra("aspectY", 1);// intent.putExtra("outputX", 100);//裁剪后大小 intent.putExtra("outputY", 100);// intent.putExtra("scale", true);//伸缩 intent.putExtra("return-data", false);//uri输出 startActivityForResult(intent, 0x722); }AndroidManifest.xml
<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.can.cameracapture" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> file_paths.xml <?xml version="1.0" encoding="utf-8"?> <resources> <paths> <external-path name="camera_photos" path="" /> </paths> </resources>