在网格中以编程方式设置按钮大小
Setting button size programatically in grid
对不起,我的标题可能不是很明确。在我开始之前,只想让您知道我是 Android 编程方面的新手。
所以,我要创建的是一个数独板。它不必花哨,我宁愿它保持简单。到目前为止,这是我的 onCreate 方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout);
for (int col = 0; col < 9; col++) {
for (int row = 0; row < 9; row++) {
Button b = new Button(this);
String text = row + "," + col;
b.setText(text);
b.setMinHeight(0);
b.setMinWidth(0);
b.setPadding(0,0,0,0);
GridLayout.LayoutParams params = new GridLayout.LayoutParams();
params.setMargins(0,0,0,0);
params.height = LayoutParams.WRAP_CONTENT;
params.width = LayoutParams.WRAP_CONTENT;
params.setGravity(Gravity.CENTER);
params.columnSpec = GridLayout.spec(col);
params.rowSpec = GridLayout.spec(row);
b.setLayoutParams(params);
b.setId(row * 10 + col);
b.setOnClickListener(this);
gridLayout.addView(b);
}
}
}
我只想创建一个 9 x 9 的按钮网格(稍后可能会更改为 TextField)。但是,如果不专门设置按钮宽度,我似乎无法水平显示所有 9 个按钮。如何以编程方式创建随屏幕尺寸缩放的方形视图网格?
查看这篇文章了解如何将像素转换为 dp:
并更改您的 params.height
和 params.width
以将该方法与您想要的值一起使用。例如:
dpToPx(25); //size will be 25p
对不起,我的标题可能不是很明确。在我开始之前,只想让您知道我是 Android 编程方面的新手。
所以,我要创建的是一个数独板。它不必花哨,我宁愿它保持简单。到目前为止,这是我的 onCreate 方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout);
for (int col = 0; col < 9; col++) {
for (int row = 0; row < 9; row++) {
Button b = new Button(this);
String text = row + "," + col;
b.setText(text);
b.setMinHeight(0);
b.setMinWidth(0);
b.setPadding(0,0,0,0);
GridLayout.LayoutParams params = new GridLayout.LayoutParams();
params.setMargins(0,0,0,0);
params.height = LayoutParams.WRAP_CONTENT;
params.width = LayoutParams.WRAP_CONTENT;
params.setGravity(Gravity.CENTER);
params.columnSpec = GridLayout.spec(col);
params.rowSpec = GridLayout.spec(row);
b.setLayoutParams(params);
b.setId(row * 10 + col);
b.setOnClickListener(this);
gridLayout.addView(b);
}
}
}
我只想创建一个 9 x 9 的按钮网格(稍后可能会更改为 TextField)。但是,如果不专门设置按钮宽度,我似乎无法水平显示所有 9 个按钮。如何以编程方式创建随屏幕尺寸缩放的方形视图网格?
查看这篇文章了解如何将像素转换为 dp:
并更改您的 params.height
和 params.width
以将该方法与您想要的值一起使用。例如:
dpToPx(25); //size will be 25p