我有这段代码,我想做同样的事情,但是花费更少的内存。有什么想法在我生成的300个ImageView
中分别设置一个图像加载器,或者类似方法来解决此问题?
DisplayMetrics lDisplayMetrics = getResources().getDisplayMetrics();
int widthPixels = lDisplayMetrics.widthPixels;
for (int getDrawables = 0; getDrawables < 300; getDrawables++)
{
final ImageView icoView = new ImageView(ImageEditor.this);
icoView.setImageResource(getResources().getIdentifier("icon_"+getDrawables, "drawable", getPackageName()));
icoView.setLayoutParams(new LinearLayout.LayoutParams(widthPixels/7,widthPixels/7));
gridlayout.addView(icoView);
int idGen = View.generateViewId();
icoView.setId(idGen);
icoView.setTag("icon_"+getDrawables);
gridlayout.setColumnCount(6);
}
最佳答案
不要在布局中添加太多ImageView。无论如何,我想它们不会一次全部可见。使用诸如GridView或RecyclerView之类的东西来为您管理视图的回收。