2012-10-08 41 views
1

我需要創建一個圖像庫。圖像保存在遠程服務器中。黑莓客戶端需要下載並呈現給用戶界面(圖庫視圖)。黑莓的異步圖像下載器

我已經使用Android的「UniversalImageDownloaer」庫。但現在,我正在尋找任何這樣的免費軟件/開放源碼庫,這將有助於我達到我的BlackBerry目的。任何人都可以幫助我指導我獲得資源。

我需要考慮下面的事情

  1. 異步鏡像下載
  2. 庫視圖
  3. 圖像緩存

編輯-1 從我以往的經驗,我明白了黑莓手機在運行時最多可創建250個(很多爲5 +/-)的線程。並且每個應用程序限制爲17個線程數。所以我必須研究線程池併爲我的需求提供安全線程。

+0

只是一個評論。即使您有超過17張圖片可供下載,您甚至不希望爲此使用超過17個線程。並行運行多個網絡請求並不會讓它們變得更快。如果某些映像位於不同的服務器上,則有多個工作線程可能會很有用,因此如果某個服務器停機(或速度較慢),則不會阻止從其他服務器下載的進度。但是,你不會從17個工作線程中受益。所以,這在幾乎所有情況下都不是什麼限制。 – Nate

+0

@Nate。我並不想要創建17個工作線程。我只是分享了我的想法。 –

回答

1

我不知道任何圖書館的BB延遲加載。您可以嘗試將該庫移植到BlackBerry或DIY上。讓我們來看看你怎麼能做到這一點:

  1. 您可以編寫一個消費者線程,這將在同一時間下載的圖像(在黑莓,你不會得到並行多少的性能提升下載)。該使用者可以從堆棧中獲取URL。用戶界面(屏幕,列表)將在每次需要圖像時向用戶提交請求。該請求只是將資源URL傳遞給使用者,以便將其放在堆棧的頂部。同時,GUI應顯示默認圖像或加載消息。 Java中有很多關於如何以線程安全的方式設計消費者生產者方案的好書和手冊,但它超出了這個答案的範圍。
  2. 從OS 5.0開始,您有PictureScrollField類,它允許您顯示一排滾動圖像,並且可以在一定程度上進行自定義。我想,SDK中的示例文件夾中有一個示例演示應用程序。
  3. 如果在程序執行過程中可能對同一圖像發出多個請求,則緩存是一個有趣的增強。您可以將它們保存在使用者堆棧的RAM中,或者將它們保存到SDCard中的文件夾中。消費者會首先查看緩存,並且只有在它不存在的情況下才會啓動遠程下載。