我有一种方法创建一个很小的小彩色正方形的大网格,我注意到这对CPU使用率有很大的影响。大网格的小小的彩色正方形导致高CPU使用率
请注意,此方法仅被调用一次,即使方法结束,问题仍然存在并且永远不会结束。如果此方法未执行,则cpu使用率仍然很低。
// regionLayout is a vertical LinearLayout
// gridHorizontalSize and gridVerticalSize determines the size of the grid
regionLayout.removeAllViews();
regionLayout.setWeightSum(gridVerticalSize);
ImageView cell = null;
LinearLayout row;
int color;
for(int i=0; i<gridVerticalSize; i++) {
row = new LinearLayout(context);
row.setWeightSum(gridHorizontalSize);
regionLayout.addView(row, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 1f));
for(int j=0; j<gridHorizontalSize; j++) {
cell = new ImageView(context);
color = /* color is chosen somehow */
cell.setBackgroundColor(color);
row.addView(cell, new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1f));
}
}
我用了两个LinearLayout中,使一格,因为我不熟悉的网格布局,并没有真正知道如何设置一个weightSum对水平和垂直尺寸。 我没有特别的原因使用ImageViews,我只需要一些我可以设置颜色的东西。
网格通常是30x30左右的正方形,所以可以制作900个小彩色正方形,我知道它很多,但是没有办法,我需要同时在屏幕上显示900个正方形。
我可以改变什么来改进?谢谢。
由于取得了格子板的看法!你的回答引导我一个很好的解决方案! –