我正在從互聯網下載圖像,然後在屏幕上縮放顯示它們。這個想法是使用inSampleSize,因此我可以在解壓縮的同時縮放大圖,並防止OutOfMemory異常。但爲了找到inSampleSize,我需要知道圖像分辨率。它可以使用inJustDecodeBounds選項獲取。互聯網上的Android BitmapFactory
問題是我無法將它傳遞給流,並直接從互聯網下載圖像,因爲它會下載兩次(首先獲取大小,然後獲取縮放的位圖)。我無法下載圖像並將其存儲在RAM中,因爲圖像大小可能很大。剩下的唯一解決方案是將圖像下載到SD卡/內部存儲器並從那裏讀取,但是當用戶沒有空間時,就會發生不好的事情。
問題是 - 有沒有辦法做到這一點,而不依賴於存儲和RAM內存,不需要下載圖像兩次?或者,也許BitmapFactory不使用inJustDecodeBounds時下載整個圖像,但只是頭?
感謝
替代ram和sd?嗯......開玩笑的人認爲它的標準下載機制,不用bitmapfactory,但會期望它的行爲類似。總而言之,我不明白爲什麼這會成爲一個問題。你不能只是檢查是否有空間,如果沒有,你不能允許下載。 – Warpzit
總是值得檢查是否有更好的方法。如果能夠在不下載整個文件的情況下獲得圖像大小,這種機制將更可靠。 –
Aggree :)但你仍然有內存問題...如果有兩次圖片是一個問題,爲什麼不會一次?我只是不能讓問題的意見:) – Warpzit