如何减少在android中动态创建视图的时间?

时间:2015-12-12 17:31:41

标签: android

嗨,我正在研究安卓。

我现在正在玩扫雷游戏。

从用户那里获取游戏的关卡信息,我尝试第一次在android中动态创建视图。

当我点击按钮" READY"时,动态创建按钮。

当选择一个简单的游戏时,60个按钮,当中间,81个按钮,以及困难时,创建135个按钮。

但活动经常停止。

我想知道更可靠的观看方式。

以下是创建它们的代码。非常感谢

public void makeMineFarm(int level) {
        int rowNum = EASY_ROW;
        int colNum = EASY_COLUMN;

        switch (level) {
            case 1:
                break;
            case 2:
                rowNum = MEDIUM_ROW;
                colNum = MEDIUM_COLUMN;
                break;
            case 3:
                rowNum = DIFFICULT_ROW;
                colNum = DIFFICULT_COLUMN;
                break;
        }

        tableRow = new TableRow[rowNum];
        buttons = new MineButton[rowNum][colNum];

        int[] valArr = getMineValue(rowNum, colNum);

        for (int i = 0; i < rowNum; i++) {
            tableRow[i] = new TableRow(this);
            TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
            tableRow[i].setLayoutParams(layoutParams);

            for (int j = 0; j < colNum; j++) {

                buttons[i][j] = new MineButton(this);


                TableRow.LayoutParams lp = new TableRow.LayoutParams();
                lp.width = 120;
                lp.height = 120;
                lp.setMargins(-5, -5, -5, -5);
                buttons[i][j].setLayoutParams(lp);
                buttons[i][j].setTextSize(18);


                if (valArr[colNum * i + j] == -1) {
                    buttons[i][j].setValue("@");
                } else {
                    buttons[i][j].setValue(Integer.toString(valArr[colNum * i + j]));
                }

                buttons[i][j].setOnClickListener(new OnMineButtonClickListener(this, buttons[i][j]));


                tableRow[i].addView(buttons[i][j]);
            }

            tableLayout.addView(tableRow[i]);
        }

    }

0 个答案:

没有答案