我正在尝试从 SD 卡缩放位图并将其写入手机内存。然后稍后将其解码以将其添加到HashMap
.
问题是我得到文件未找到异常,尽管路径正确并且缩放图像存在(我检查过)
这是保存部分
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );
File imageRootPath = getFilesDir();
File imageRoot = new File(imageRootPath, imagUri.getLastPathSegment()+".png");
FileOutputStream out = new FileOutputStream(imageRoot);
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 90, out);
这是我阅读文件时的部分
try {
Uri mainImgeUri = Uri.parse(imageRoot.toString());
File imageFile = new File(mainImgeUri.toString());
if(imageFile.exists()){
System.out.println("it does");
}
InputStream imageStream = ListPropertiesBaseActivity.this.getContentResolver().openInputStream(mainImgeUri); // I am getting file not found error
Bitmap yourSelectedImage =BitmapFactory.decodeStream(imageStream);
hmBitmap.put(ID, yourSelectedImage);
imageStream.close();
} catch (Exception e) {
e.printStackTrace();
}
难道是OpenInputStream
无法从手机内部存储器中读取?或者可能是保存后的图像不好?
虽然我可以通过手动浏览文件并打开它来查看它
请注意 System.out.Println 被执行所以这意味着文件存在