2015-10-05 57 views
1

我有一个RecyclerView,并通过检测RecyclerView的结尾从我的数据库中加载十个项目。 我的问题:加载项目后,当我滚动,RecyclerView冻结1-2秒。 我认为问题来自ImageView中的每个项目。 每个负载之后,最后添加的列表适配器这样的:arrayAdapter.list.addAll(questions);然后arrayAdapter.notifyDataSetChanged();Android - 加载后的RecyclerView冻结

我adpater:

+2

holder.questionImage.setImageBitmap(问题。图片);你必须在后台线程上做到这一点,可能会是很好的使用缓存检查这里https://developer.android.com/training/displaying-bitmaps/cache-bitmap.html – Pavan

+0

这样的事情? 'yourImageView.post(新的Runnable(){@Override 公共 无效的run(){// 在此处设置的下载图像 } });' – Okn

+0

不与其他线程,同样的问题的工作。它冻结时,我滚动 – Okn

回答

0

由于帕文

public class SetImageBitmap extends AsyncTask<Void, Void, Bitmap> { 
    Question q; 
    ImageView iv; 

    public SetImageBitmap(Question q, ImageView iv) { 
     this.q = q; 
     this.iv = iv; 
    } 

    @Override 
    protected Bitmap doInBackground(Void... params) { 
     return q.image; 
    } 

    @Override 
    protected void onPostExecute(Bitmap bitmap) { 
     iv.setImageBitmap(bitmap); 
     iv.setVisibility(View.VISIBLE); 
    } 
}