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);
}
}
,即使它不起作用,我猜是因为图像资源一次又一次地在堆上加载而不清除堆,我们可以引用先前加载的图像,是有任何解决方案。
答案 0 :(得分:1)
Buddyname?它似乎是一个联系人列表。如果是,请改用ListView。它动态加载可见的元素。 20表行确实很多。