android listview out of memory,ListView导致OutOfMemory错误

所以我没有给出这个错误消息的正确理由。我不确定为什么会发生这种情况,但我的猜测是,它与大约有50个质量好的抽屉有关。滚动速度非常快,应用程序崩溃。我觉得好像我正在缓解ListView的最常见问题并且崩溃,例如使用View Holders以及仅启动inflater一次。

Process: com.example.michael.myandroidappactivity, PID: 20103

java.lang.OutOfMemoryError

at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

这是代码

public class ImageAdapter extends BaseAdapter

{

private Context context;

private ArrayList imageIds;

private static LayoutInflater inflater;

public ImageAdapter(Context _context, ArrayList _imageIds)

{

context = _context;

imageIds = _imageIds;

}

@Override

public int getCount()

{

return imageIds.size();

}

@Override

public Object getItem(int position)

{

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

static class ViewHolder{

ImageView img;

}

@Override

public View getView(int position, View convertView, ViewGroup parent)

{

ViewHolder holder = null;

View rowView = null;

if(rowView==null) {

LayoutInflater inflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

rowView = inflater.inflate(R.layout.listview_layout, parent, false);

holder = new ViewHolder();

holder.img = (ImageView) rowView.findViewById(R.id.flag);

rowView.setTag(holder);

}

else

{

holder = (ViewHolder) rowView.getTag();

}

holder.img.setImageResource(imageIds.get(position));

return rowView;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值