如何从Uri获取Bitmap?

268

如何从Uri获取Bitmap对象(如果我成功将其存储在/data/data/MYFOLDER/myimage.pngfile///data/data/MYFOLDER/myimage.png中),以便在我的应用程序中使用?

有没有人有实现这个的想法?

24个回答

1
* For getting bitmap from uri. Work for me perfectly.
    
    
    public static Bitmap decodeUriToBitmap(Context mContext, Uri sendUri) {
          Bitmap getBitmap = null;
          try {
            InputStream image_stream;
            try {
              image_stream = mContext.getContentResolver().openInputStream(sendUri);
              getBitmap = BitmapFactory.decodeStream(image_stream);
            } catch (FileNotFoundException e) {
              e.printStackTrace();
            }
          } catch (Exception e) {
            e.printStackTrace();
          }
          return getBitmap;
        }

0

从移动相册获取图像URI的完整方法。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

  if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
                Uri filePath = data.getData();

     try { //Getting the Bitmap from Gallery
           Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
           rbitmap = getResizedBitmap(bitmap, 250);//Setting the Bitmap to ImageView
           serImage = getStringImage(rbitmap);
           imageViewUserImage.setImageBitmap(rbitmap);
      } catch (IOException e) {
           e.printStackTrace();
      }


   }
}

0
我在使用这里提供的解决方案时遇到了一个经常出现的问题:

无法找到com.samsung.systemui.navillera.navilleraprovider的提供程序信息

这将阻止您的位图被加载。

我尝试了另一种方法,它起作用了!感谢上帝。

解释是所提供的URI需要转换为文件路径。

Bitmap b1 = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.fromFile(new File(uri1.toString())));

-1

这很不恭,因为他需要一个位图而不是图像UI。 - Sattar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接