此代码,将Gallery browser返回图片的URL(content://开头的Content providers数据),
转化为直接的文件路径。
// 打开Gallery browser,选取图片
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "选择图片:"),1);
// 选取的图片URL将在你Activity的onActivityResult方法中返回
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
// currImageURI是以content://开头的Content providers图片数据,并不能直接使用
currImageURI = data.getData();
}
}
}
// 转换Content providers数据为我们可以直接使用的文件路径
public String getRealPathFromURI(Uri contentUri) {
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(contentUri,
proj, // 返回的列
null, // WHERE子句; 返回哪些行 (为空应许所有行)
null, // WHERE子句的参数
null); // 排序
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}