我有这段代码,我想做同样的事情,但是花费更少的内存。有什么想法在我生成的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。无论如何,我想它们不会一次全部可见。使用诸如GridViewRecyclerView之类的东西来为您管理视图的回收。

09-08 08:09