這是我最後一個問題的一個後續跟進:Canvas is drawing too slowly在SurfaceView上加載和顯示jpeg的最快方法?
現在我可以更快地繪製圖像,我面臨的問題是圖像的實際加載時間太長。
在我工作的應用程序中,用戶可以連續播放視頻幀(jpegs),就好像他正在實時查看視頻一樣。我一直在使用BitmapFactory.decodeFile()
來加載位圖中的每個jpeg。我無法一次加載所有圖像,因爲它們中有大約240個,並且會佔用我所有的堆空間。我一直在做的是通過一個單獨的線程一次將多達6個預加載到一個數組中,以便減少每個圖像顯示所花費的時間。
不幸的是,它需要50到90ms之間來加載圖像,我需要顯示一個圖像每42毫秒。有沒有更快的方式來加載圖像可能?
爲了便於說明,這些圖像位於SD卡上的文件夾中,它們都是720x480 jpegs。我正在採樣他們的一半大小,以減少內存使用量。
使用內部存儲器或使用png而不是jpeg時,您是否看到過任何差異? – mibollma
我還沒有嘗試過內存,我想我會試試下。我開始使用png,但它們比jpeg大得多,而且jpeg在設備上佔用了大約8MB的空間。 – BigFwoosh
使用內部存儲器似乎有點快,但它對於我所做的還不夠快。我認爲我真正需要的是一種在不犧牲質量的情況下存儲所有圖像的方法。如果將inSampleSize設置爲4,我可以將它們全部存儲在內存中,但質量會大幅下降。 – BigFwoosh