1.首先设置读写权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.设置存取相片的路径:
private String path=Environment.getExternalStorageDirectory()+"/image.png";
3.设置系统相机:
//打开相机 MediaStore.ACTION_IMAGE_CAPTURE 打开相机的Action Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path))); //1.意图 2.requestCode 请求码 startActivityForResult(intent, 1);
4.设置回传码:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==1 && resultCode==RESULT_OK) { //调取裁剪功能 om.android.camera.action.CROP 裁剪的Action Intent intent = new Intent("com.android.camera.action.CROP"); //得到图片设置类型 intent.setDataAndType(Uri.fromFile(new File(path)), "image/*"); //是否支持裁剪 设置 true 支持 false 不支持 intent.putExtra("CROP", true); //设置比例大小 1:1 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); //输出的大小 intent.putExtra("outputX", 250); intent.putExtra("outputY", 250); //将裁剪好的图片进行返回到Intent中 intent.putExtra("return-data", true); startActivityForResult(intent, 2); } //点击完裁剪的完成以后会执行的方法 if (requestCode==2 && resultCode==RESULT_OK) { Bitmap bm=data.getParcelableExtra("data"); mHostImage.setImageBitmap(bm); } }