如何从Uri获取Bitmap对象(如果我成功将其存储在/data/data/MYFOLDER/myimage.png
或file///data/data/MYFOLDER/myimage.png
中),以便在我的应用程序中使用?
有没有人有实现这个的想法?
如何从Uri获取Bitmap对象(如果我成功将其存储在/data/data/MYFOLDER/myimage.png
或file///data/data/MYFOLDER/myimage.png
中),以便在我的应用程序中使用?
有没有人有实现这个的想法?
* 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;
}
从移动相册获取图像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();
}
}
}
无法找到com.samsung.systemui.navillera.navilleraprovider的提供程序信息
这将阻止您的位图被加载。
我尝试了另一种方法,它起作用了!感谢上帝。
解释是所提供的URI需要转换为文件路径。
Bitmap b1 = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.fromFile(new File(uri1.toString())));
在2022年,使用coil库来实现此目的。
https://coil-kt.github.io/coil/compose/
针对 Jetpack Compose
AsyncImage(
model = uriOfImage,
contentDescription = null,
)