我正在制作Tic Tac Toe游戏。我使用了tic tac toe board的按钮并动态设置表格布局。 问题是,我无法设置按钮的背景属性。 我的代码在这里。
TableLayout table = (TableLayout) findViewById(R.id.tableLayout1);
table.removeAllViewsInLayout();
int id = 0;
for (int f = 0; f < board_size; f++) {
TableRow tr = new TableRow(this);
for (int c = 0; c < board_size; c++) {
Button b = new Button(this);
b.setId(id);
b.setTextSize(15.0f);
//below code assign color to whole table background
//b.setBackground(Color.WHITE);
b.setOnClickListener(this);
id++;
tr.addView(b, screenWidth / board_size, screenWidth / board_size);
}
table.addView(tr);
}
请指导我。提前致谢。
答案 0 :(得分:2)
R.color.red是一个ID(也是一个int),但不是一种颜色。
请改用以下其中一项:
// If you're in an activity:
Button.setBackgroundColor(getResources().getColor(R.color.red));
// OR, if you're not:
Button.setBackgroundColor(Button.getContext().getResources().getColor(R.color.red));
或者,或者:
Button.setBackgroundColor(Color.RED); // From android.graphics.Color
或者,更多专业技能:
Button.setBackgroundColor(0xFFFF0000); // 0xAARRGGBB
答案 1 :(得分:1)
您没有将LayoutParams提供给新创建的Button。加上这个:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
b.setLayoutParams(params);
答案 2 :(得分:0)
请致电:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(5, 5, 5, 5);
b.setLayoutParams(params);
b.setBackgroundColor(Color.GREEN); // From android.graphics.Color
答案 3 :(得分:0)
尝试b.setBackgroundColor(Color.Green);
设置按钮宽度
b.setLayoutParams(new LinearLayout.LayoutParams(10,100));