我一直在關注Android開發人員指南,以創建一個使用現有相機應用拍攝照片的應用。接下來,我試圖使用指南https://developer.android.com/training/camera/photobasics.html#TaskScalePhoto 的這部分將它們放入圖像視圖,但BitmapFactory decodeFile返回null。我簡化它到下面的代碼,但它給出了相同的結果。爲什麼BitmapFactory decodeFile返回null?
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
imageView.setImageBitmap(bitmap);
mCurrentPhotoPath設定爲image.getAbsolutePath()
和示例是 存儲/模擬/ 0/Android設備/數據文件// /圖片/ JPEG_20170503_102533_2060032401.jpg
我可以硬編碼mCurrentPhotoPath的值以公知的照片,我仍然無效。
但是如果我更換與 存儲/模擬/ 0/DCIM /攝像機/ IMG_20161124_145814981_HDR.jpg (單獨使用我的手機正常的相機應用創建的照片),那麼它的工作原理。
我
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
在我的清單。這兩個文件具有相同的權限並且大小相同。我可以將它們複製到別處,它們似乎是有效的jpeg文件。 任何想法可能會發生什麼?
我查看了很多帖子,並嘗試了一些東西,包括下面的變化,但我得到了同樣的結果。
File dest = new File(mCurrentPhotoPath);
FileInputStream fis = null;
fis = new FileInputStream(dest);
Bitmap img = BitmapFactory.decodeStream(fis);
smallPhoto.setImageBitmap(img);
路徑以'/'開頭。我希望你們所有人都會失敗,其中包括你說的那些工作。 – CommonsWare
可能傳遞錯誤的BitmapOptions。 –
第一條路徑看起來格式錯誤,它在中間有雙'//' – LukeJanyga