我有一種方法創建一個很小的小彩色正方形的大網格,我注意到這對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個正方形。
我可以改變什麼來改進?謝謝。
由於取得了格子板的看法!你的回答引導我一個很好的解決方案! –