Android:支援多選的本地相簿

來源:互聯網
上載者:User

Android:支援多選的本地相簿

前段時間在做一個動態發布功能,需要用到圖片上傳。一開始直接調用的系統相簿和相機,由於系統相機不支援多選,就花點時間做了個本地相簿,在此開源下。

先上,依次為選擇相簿介面、相簿詳情介面、查看圖片大圖介面

  

相簿清單按圖片數量降序排序,相簿詳情列表按圖片時間降序排序,對比了下和QQ的相簿,讀取的檔案基本一致。

接下來說下相簿檔案遍曆的思路。首先肯定不會是通過檔案夾逐級遍曆的,這樣效率太低。查了下API發現Android的系統資料庫已經儲存了所有的圖片路徑和縮圖路徑(如果有),可直接通過ContentProvider來擷取,擷取大圖的URI是

MediaStore.Images.Media.EXTERNAL_CONTENT_URI

擷取縮圖的URI是

MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI

我的做法是先遍曆所有大圖,擷取ID和路徑,再通過大圖的ID去尋找縮圖路徑,在相簿中顯示的都是縮圖,這樣可以提高顯示速度,同時減少記憶體開銷。但是通過大圖ID去尋找縮圖這一步是需要消耗一點時間的,因此將它在App啟動時,開啟線程執行。LocalImageHelper類用以執行該操作。

待完善點:相簿的初始化是放在應用啟動時,初始化一次後就不再重新執行,因此假如在應用開啟後,裝置內添加了新的圖片或刪除了圖片,應用內緩衝的相簿仍然不會改變,下一步可以在每次開啟相簿時和本地圖片做一次對比,對新增的和刪除的圖片做一個更新。

Demo中使用了ImageLoader庫來展示圖片,使用的是Android Studio開發。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.