从Uri

时间:2017-05-19 10:48:37

标签: java android file android-intent uri

通过相机意图捕捉图像=> new Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(MediaStore.EXTRA_OUTPUT, photoUri);

  1. 将Uri转换为string => String image = photoUri.toString();
  2. 从相同的字符串中检索Uri => Uri uri = Uri.parse(image);
  3. 从Uri创建文件=> File imageFile = new File(uri.getPath());
  4. 相机意图工作正常,但结束文件,imageFile是一个空图像文件。

2 个答案:

答案 0 :(得分:0)

使用以下代码:

File imageFile = new File(getPath(uri));
public String getPath(Uri uri) 
{
    Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
    cursor.moveToFirst(); 

    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String s=cursor.getString(column_index);
    cursor.close();
    return s;
}

答案 1 :(得分:0)

我想从URI创建文件,我遇到的挑战是我以MediaStore.Images.Media.getBitmap(getContentResolver(), uri)格式获取URI

所以我尝试了以下内容:

imageView.setImageBitmap(MediaStore.Images.Media.getBitmap(getContentResolver(), uri))它返回了我的位图,所以如果我想在ImageView中显示图像或使用以下代码从bitmat创建文件,我选择使用FileOutputStream fOutputStream = new FileOutputStream(filePath); BufferedOutputStream bOutputStream = new BufferedOutputStream(fileOutputStream); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos); //compress format JPEG bos.flush(); bos.close();下面:

{{1}}