我想從SD卡擴展位圖並將其寫入手機內存。然後在稍後解碼它將其添加到HashMap
。OpenInputStream返回文件未找到異常,但文件存在
的問題是,我收到文件未發現異常儘管路徑是正確的,縮放後的圖像存在(我檢查)
這裏是節約部分
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執行所以這意味着該文件存在
那麼,因爲我在填充imageStream的行處發生異常,所以它甚至沒有填充 – Snake 2013-02-27 17:32:26
我擔心解析從imageRoot.toString()不會給你一個真正的URI到文件的位置。 您可以嘗試Uri mainImgeUri = Uri.fromFile(imageRoot)以獲取實際的文件:// uri與openInputStream一起使用。 – speedynomads 2013-02-27 17:41:59
我記錄了URI並且它有正確的路徑。我會用其他東西更新我的代碼 – Snake 2013-02-27 17:47:09