我正在製作一個音樂播放器,到目前爲止我所做的是我使用元數據文件在其列表視圖中創建了一個列表視圖中的歌曲列表。 現在當我滾動我的列表它滯後,這可能是因爲圖像加載。 我提到Google Play音樂應用程序,他們所做的是他們在滾動時抓取專輯封面,所以滾動非常順暢。 有什麼辦法來實現這種功能?僅當它們即將顯示時在列表視圖中加載圖像
回答
你必須使用延遲加載的圖像,所以圖像將在後臺下載。
public class DownloadImage extends AsyncTask<ImageView, Void, Bitmap> {
ImageView imageView = null;
@Override
protected Bitmap doInBackground(ImageView... imageViews) {
this.imageView = imageViews[0];
return download_Image((String) imageView.getTag());
}
@Override
protected void onPostExecute(Bitmap result) {
imageView.setImageBitmap(result);
}
private Bitmap download_Image(String url) {
try {
URL ulrn = new URL(url);
HttpURLConnection con = (HttpURLConnection) ulrn.openConnection();
InputStream iS = con.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(iS);
return bmp;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}
請在您的適配器getview
imgThumbnail.setTag(<your image url>);
new DownloadImage().execute(imgThumbnail);
我不想從url獲取圖像。我想從他們那裏得到他們。這是怎麼回事?是imgThumbnail一個ImageView? –
這是異步任務,imgthumbnail是一個imageview。您可以修改異步任務以適應您的要求。如果你需要一個例子,給我一個樣本uri –
final Uri sArtworkUri = Uri .parse(「content:// media/external/audio/albumart」); Uri uri = ContentUris.withAppendedId(sArtworkUri,currSong.getAlbumID()); 這是我的uri代碼。我嘗試修改異步任務,但它需要上下文,我不能通過,因爲它會超過任何參數。 –
- 1. lazyload:僅當它包含圖像加載時才顯示div
- 2. ASP.NET MVC:從數據庫中加載圖像並在視圖中顯示它們
- 3. 在列表視圖中加載圖像
- 4. 在列表視圖中加載圖像
- 5. 在平鋪視圖顯示圖像,並重新排列它們
- 6. C# - 如何將文件夾中的圖像添加到數組並將它們顯示在列表視圖中?
- 7. C# - 將圖像加載到圖像列表和列表視圖
- 8. 在顯示列表視圖的同時下載圖像
- 9. 只有當它們在WP7中可見時才加載圖像列表框
- 10. 錯誤的圖像加載時在列表視圖中加載圖像
- 11. 當WebView在Android中加載頁面時顯示「加載」圖像
- 12. 點擊列表項時,圖像在列表視圖中交換它們的行
- 13. 僅當在地圖視圖上選擇圖釘時才顯示圖像
- 14. 如何在加載大圖像時顯示加載圖像?
- 15. 我試圖顯示在列表視圖圖像的列表,但
- 16. 使用通用圖像加載器在列表視圖中加載圖像
- 17. 顯示加載圖像並隱藏它
- 18. 如何顯示加載圖像每當標籤頁加載時
- 19. wxPython的線程顯示圖像,因爲它們加載
- 20. 無法在圖像視圖中顯示圖層列表
- 21. 在加載視圖時加載圖像視圖
- 22. 僅當圖像可見時才加載圖像?
- 23. 僅當元素進入視口時纔會加載圖像
- 24. 從數據表在列表視圖中顯示圖像
- 25. 在列表視圖中添加圖像
- 26. 通用圖像加載器在Android中加載時顯示不同的圖像
- 27. 顯示在列表視圖
- 28. 顯示加載圖像,同時填充組合框列表
- 29. 將圖像放在數組中並顯示它們
- 30. 保存圖像,然後將它們顯示在QLabel中
在您的列表視圖可以將您的圖像異步加載到意見,這個類的調用。看到http://developer.android.com/training/displaying-bitmaps/load-bitmap.html它會有所幫助。 – Sayem