2015-11-12 13 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個正方形。

我可以改變什麼來改進?謝謝。

回答

相關問題