[英]Android loading images in ListView
我正在將圖像從Parse.com加載到列表視圖中,一切正常,但是問題是當我滾動通過列表視圖時,圖像一直都在重新加載。 我正在將圖像緩存在內存中,但是每次加載圖像之前每次閃爍都是令人討厭的。
我正在使用異步任務加載圖像,這是代碼:
private class loadContent extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
query = new ParseQuery<ParseObject>("Images");
query.orderByDescending("createdAt");
query.setLimit(limit);
ob = query.find();
for(ParseObject num : ob){
ParseFile img = (ParseFile)num.get("img");
PostRow test1 = new PostRow(img.getUrl().toString(), (String) num.get("username"));
postList.add(test1);
}
//loadDataFromAdapter();
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
adapter.notifyDataSetChanged();
}
}
我該怎么做才能一次將10張圖像保持在列表視圖中?
您應該研究使用Picasso庫。 從他們的網站:
它被廣泛用於圖像下載,並且非常易於使用。
希望有幫助!
如操作建議所示,使用畢加索將是更明智的方法。
但是,仍然需要使用drawable作為占位符,以防止這種“煩人的閃爍”。
ParseFile img = (ParseFile)num.get("img");
String urlImage = img.getUrl().toString();
Picasso.with(context).load(urlImage).fit().centerCrop().placeholder(R.drawable.white_placeholder).into(imageview);
對於使用Universal Image Loader的任何人來說,問題出在我的配置中,我的RAM不足以進行緩存。 現在,我改變了一切,一切正常。
.memoryCache(new LruMemoryCache(50 * 1024 * 1024))
.memoryCacheSize(50 * 1024 * 1024)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.