执行setImageResource()时出现OutOfMemoryError

时间:2013-03-18 10:45:40

标签: android imageview out-of-memory

ImageView.setImageResource(int id);正在显示OutOfMemoryError。 我有一个TableLayout我正在实际添加TableRow,在我设置图像的每一行中,已经在我的项目资源文件夹中,我正在使用{{1}引用这些图像}。

resource_id

每次我正在做private void addItems() { table.removeAllViews(); Random rand = new Random(); for (int i = 0; i < 20; i++) { TableRow row = new TableRow(getActivity()); table.addView(row); RelativeLayout profile = (RelativeLayout) getLayoutInflater(null).inflate(R.layout.buddyname, null); TextView name = (TextView) profile.findViewById(R.id.name); name.setText(randomNames[i]); ImageView photo = (ImageView) profile.findViewById(R.id.photo); photo.setImageResource(randomPhoto[new Random().nextInt(randomPhoto.length - 1)]); row.addView(profile); } } ,即使它不起作用,我猜是因为图像资源一次又一次地在堆上加载而不清除堆,我们可以引用先前加载的图像,是有任何解决方案。

1 个答案:

答案 0 :(得分:1)

Buddyname?它似乎是一个联系人列表。如果是,请改用ListView。它动态加载可见的元素。 20表行确实很多。