2017-04-27 71 views
-5

我們正在開發一個用於文檔掃描儀的android應用程序。掃描儀Android應用程序

該應用程序具有編輯圖像的功能,如添加魔幻色,灰色模式,黑白色等。此應用程序可以選擇掃描「N」個頁面並在最後將其轉換爲PDF。

該應用程序的流程是第一個活動正在拍攝的圖像和第二個活動裁剪圖像和第三個活動編輯圖像像應用魔術顏色,灰色模式和黑/白轉換。在第三項活動中,我們添加按鈕,單擊它將返回到第一項活動,並繼續相同的過程。一旦掃描的所有圖像,第三項活動是完成按鈕,點擊它將創建PDF並關閉應用程序。

現在問題出在掃描了35頁之後,它會拋出內存不足的錯誤,因爲我們始終將原始和修改的位圖保存爲代碼中的List,因爲它可能會讓用戶返回到之前的圖像並對其進行編輯。那時候我也需要原始版本的圖片。

請幫我解決以下問題。

1)在這種情況下,在哪裏保留位圖? 2)是否有任何方法將圖像存儲在外部卡中,並根據需要每次讀取圖像?

在此先感謝。

回答

0

將位圖存儲爲緩存。

out = new FileOutputStream(filename); 
bmp.compress(Bitmap.CompressFormat.PNG, 100, out); 

可以預先使用緩存目錄來存儲這樣的文件,而不是永久存儲它。 getCacheDir()將返回目錄的路徑。