-1

ImageView.setImageResource(int id);正在显示OutOfMemoryError。我有一个TableLayout我正在TableRow务实地添加,在每一行中我正在设置一个图像,该图像已经在我的项目资源文件夹中,我正在使用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);
    }
}  

每次我这样做时table.removeAllViews();它都不工作,我猜是不是因为图像资源在堆上一次又一次地加载并且没有清除堆,我们可以参考以前加载的图像,有什么解决方案吗?

4

1 回答 1

1

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

于 2013-03-18T10:48:33.647 回答