获取图像路径android

时间:2015-04-11 15:39:31

标签: android image bitmap gallery

我想将图像加载到Android上的ImageView中。现在,我知道如果图像太大,我必须缩放它,以便它不会占用太多内存。

我想在这里做的事情是:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

现在,我获取图像的方式是通过它的URI这样:

Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,"text"),1);


protected void onActivityResult(int reqCode, int resCode, Intent data){
    super.onActivityResult(reqCode, resCode, data);

    if (reqCode == 1 && resCode == RESULT_OK && data != null) {
        Uri selectedImage = data.getData();
    }
}

如果我想使用一些decode *()方法,我不能用URI做到这一点。所以我的首选是使用:

decodeFile(imageUri.getPath(),options);

但是当我这样做时,我从画廊得到的路径就像:/ documents / image:9023

我该怎么做? 我只需要打开图库并从显示中获取图像,也可以将其保存为位图,以便我可以编辑它。

2 个答案:

答案 0 :(得分:1)

即使我在几天前遇到类似的问题,

1。)首先将您的Uri转换为字符串

String SelectedImageString= selectedImage.toString();

2.)一旦你将获得图像的字符串路径,你可以将其转换为位图,并使用bitmapFactory选项调整它的大小。

final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 8; 
        Bitmap bitmap;
        bitmap=BitmapFactory.decodeFile(SelectedImageString, options);
        imageView.setImageBitmap(bitmap);

它对我有用,我希望它会对你有所帮助。

答案 1 :(得分:0)

  

如果我想使用一些decode *()方法,我不能用URI

来做

当然可以。在openInputStream()上致电ContentResolver,然后将InputStream传递给decodeStream()上的BitmapFactory方法。

A Uri is not necessarily a file,所以不要试图将其视为一个。