我搜索了這麼多,但我不能幫助自己。 有沒有人可以說我的ListView如何解決OutOfMemoryError問題。 只有在我的ListView中添加了50多個位圖後纔會出現。 據我所知,由於所有的位圖,設備內存已滿,但是有沒有辦法回收遠離視口的位圖?Listview with bitmaps,outofmemoryerror
這裏是我的ListView適配器:
public class ImageAdapter extends ArrayAdapter<ExtendedBitmap>{
private LinkedList<ExtendedBitmap> items;
LayoutInflater mInflater = LayoutInflater.from(getContext());
public ImageAdapter(Context context, int resource, LinkedList<ExtendedBitmap> items) {
super(context, resource, items);
this.items = items;
}
public void add(ExtendedBitmap bitmap)
{
items.add(bitmap);
notifyDataSetChanged();
}
public void addFirst(ExtendedBitmap bitmap)
{
items.addFirst(bitmap);
notifyDataSetChanged();
}
public ExtendedBitmap getBitmap(int position){
return items.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.extended_image, parent, false); ;
holder = new ViewHolder();
holder.image = (ImageView) convertView.findViewById(R.id.image);
//holder.image.setOnTouchListener(new Touch());
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.image.setImageBitmap(items.get(position).getBitmap());
return convertView;
}
}
位圖和內存不足問題在Android中猖獗。從側邊欄到右側,這似乎回答您的問題:http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-對象 –
他們談得有點太籠統 –