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();
それでも機能しないのですが、画像リソースがヒープに何度も読み込まれ、ヒープをクリアしていないためだと思いますか?以前に読み込まれた画像を参照できますか?解決策はありますか?