2016-02-04 91 views
0

我目前正在創建一個應用程序,它可以容納幾百張圖像,準確地說是445個.png文件,共19.7MB。我正在使用回收器視圖和卡片視圖來顯示每個圖像。存儲大量圖像android

是否將所有這些圖像存儲在可繪製文件夾中是執行此操作的最佳方法?另外,如果我將它們存儲在可繪製文件夾中,一旦完成後這些圖像將很容易從應用程序中提取出來?當我爲創建圖像付出相當大的努力時,有一點安全感會很好。

+0

提取很容易,如蘋果派。 Apk只是一個zip壓縮文件,因此您可以在沒有任何問題的情況下提取其內容。 – aelimill

+0

這樣做會更安全嗎? @aelimill – M0rty

+0

這實際上取決於這些資產(圖片)是什麼類型,它們對用戶/應用程序/視圖的重要性。將它們保存在外部服務器上也會很麻煩,特別是這樣做會花費用戶帶寬。如果需要在不同的設備類型上縮放資源,將它們放在可繪製文件夾中將是最好的(20MB不是很多),否則將它們存儲在資產文件夾中,存檔並以優化的方式訪問它。另外,你可以使用像畢加索這樣的庫來加載它們。 – anthonymonori

回答

0

這對普通用戶來說並不容易,但它可以獲得這些圖像。你應該加密你想保護的文件。在apk中建立加密文件將其放入assets文件夾中。
要顯示RecyclerView中的所有圖像,只有在用戶看到它時纔可以異步加載它們。如果您顯示縮略圖,那麼只需在用戶首次啓動程序時或用戶使用它時加載這些圖像,並將這些縮略圖全部加載到下一次列出。
雖然,對於445個圖像,它會更好地異步加載它。作爲優化,當用戶停在列表中的某個項目上時,可以加載某些圖像部分。例如:列表顯示5個項目,那麼你的適配器必須加載1 - 20個圖像,它需要一點點內存。

+0

你能給我一個例子,說明我可以如何異步做到這一點? @ghostman – M0rty

+0

是的,當然,現在,等一下。 –

+0

[示例](http://developer.android.com/intl/ru/training/displaying-bitmaps/process-bitmap.html)只有您自己需要更改背景加載。並在您的自定義適配器中使用它之後。當「ImageView」不可見時,只需要將偵聽器添加到空閒圖像。 –

1

至於我的答案是非常明顯的 - 最好的辦法是將所有需要的圖像保存在外面的某個地方(在服務器上)。對於加載圖像,我建議使用畢加索 - 這非常簡單,並且具有開箱即用的緩存功能,您可以以任何您想要的方式對其進行自定義。只需要兩個步驟 - 將圖像上傳到服務器並在需要時請求它們。