2015-11-12 14 views
0

我有一种方法创建一个很小的小彩色正方形的大网格,我注意到这对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个正方形。

我可以改变什么来改进?谢谢。

回答

相关问题