有时候在开发APP项目的时候,或多或少会有对手机外部储存中文件的读写操作,选取手机内存或者储存卡中的照片,就是其中一个重要的功能。
代码:
@OnClick(R.id.select_picture)
public void selectPicture(){
//1.首先创建一个Intent,打开手机媒体文件(照片)
Intent intent = new Intent();
intent.setType("image/*");//设置选择的对象为图片类型,如果是选择图片或者视频就设置为:“video/;image/“
intent.setAction(Intent.ACTION_GET_CONTENT);//设置intent的动作:获取手机内容
startActivityForResult(intent,1);//设置带有回传参数的intent
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){//选取了照片
//2.对返回的参数进行处理,成为bitmap格式的数据
Uri uri = data.getData();
Log.e("uri",uri.toString());
ContentResolver cr = this.getContentResolver();
try{
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
//3.设置图片
imageView.setImageBitmap(bitmap);
}catch (Exception e){
e.printStackTrace();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
参考文章: 是时候弄清楚getExternalStorageDirectory()和getExternalFilesDir()的区别了