我有一个显示CardView的RecyclerView。 在CardView中有两个项目:
位图是动态创建的。
在上下滚动后,我得到一个OutOfMemoryException。
我不确定如何处理它? 我应该使用LRUCache吗? 或者像毕加索这样的第三方图书馆 - 它似乎只适用于网址和ID?
任何帮助表示赞赏
更新
public class ManageProfileAdapter : RecyclerView.Adapter
{
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
ManageProfileViewHolder vh = holder as ManageProfileViewHolder;
vh.Caption.Text = profiles[position].Name;
vh.Thumbnail.SetProfile(profiles[position].Profile);
}
}
缩略图类是从View派生的自定义类(包括位图):
public class ThumbnailView : View
{
private Canvas DrawCanvas;
private Bitmap CanvasBitmap;
}
位图在Canvas上绘制。
答案 0 :(得分:1)
您必须一次又一次地在代码中的某处创建位图数据。看看
答案 1 :(得分:0)
这引导我朝着正确的方向前进:
您必须再次在代码中的某处创建位图数据 再次。看看
垃圾收集器不会删除我的thumnail视图中的位图。
解决方案是:
我没有内存异常了,在logcat中我的最高使用率是30mb ram。
经验教训:您必须自己在RecyclerView
中处理位图非常感谢。