Java 如何在android中创建线性布局和中心按钮?
在android中,如何使用java插入线性布局,在水平布局中有三个按钮,并使按钮居中 所以基本上我想要一个水平的线性布局,有三列和一行,每列都有相同的宽度,并且在每个布局单元中插入一个垂直和水平居中的图像按钮Java 如何在android中创建线性布局和中心按钮?,java,android,android-linearlayout,Java,Android,Android Linearlayout,在android中,如何使用java插入线性布局,在水平布局中有三个按钮,并使按钮居中 所以基本上我想要一个水平的线性布局,有三列和一行,每列都有相同的宽度,并且在每个布局单元中插入一个垂直和水平居中的图像按钮 LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.HORIZONTAL); LinearLayout.LayoutParams params = new
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(params);
有人知道怎么做吗
谢谢。通过将布局的重心设置为水平居中,可以使布局中的所有子视图居中,如:
LayoutParams layout_params = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT, Gravity.CENTER_HORIZONTAL);
然后是带有新构造的LayoutParams的addView,您可以对linearlayout使用weightsum=3,对每个按钮使用layout_weight=1。 请参阅详细代码。 我希望这会有所帮助。 祝你好运:)
公共类MainActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
LinearLayout布局=新的LinearLayout(本);
布局。设置方向(线性布局。水平);
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(
LayoutParams.MATCH_父项,LayoutParams.WRAP_内容);
布局。setLayoutParams(参数);
布局。设置权重总和(3);
对于(int i=0;i<3;i++){
LinearLayout.LayoutParams btnParams=新的LinearLayout.LayoutParams(
LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
btnParams.weight=1.0f;
按钮btn=新按钮(此按钮);
btn.setText(“btn”);
btn.setLayoutParams(BTNParms);
布局。添加视图(btn);
}
setContentView(布局);
}
}
或者这个代码更好但更复杂^^
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
mainLayout.setLayoutParams(params);
mainLayout.setWeightSum(3);
for (int i = 0; i < 3; i++) {
LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setText("Btn");
btn.setLayoutParams(btnParams);
LinearLayout childLayout = new LinearLayout(this);
LinearLayout.LayoutParams childParam = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
childParam.weight = 1.0f;
childLayout.setLayoutParams(childParam);
childLayout.setGravity(Gravity.CENTER);
childLayout.addView(btn);
mainLayout.addView(childLayout);
}
setContentView(mainLayout);
}
}
公共类MainActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
LinearLayout Main布局=新的LinearLayout(本);
主布局。设置方向(线性布局。水平);
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(
LayoutParams.MATCH_父项,LayoutParams.WRAP_内容);
mainLayout.setLayoutParams(参数);
主布局。设置权重总和(3);
对于(int i=0;i<3;i++){
LinearLayout.LayoutParams btnParams=新的LinearLayout.LayoutParams(
LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
按钮btn=新按钮(此按钮);
btn.setText(“btn”);
btn.setLayoutParams(BTNParms);
LinearLayout childLayout=新的LinearLayout(此);
LinearLayout.LayoutParams childParam=新的LinearLayout.LayoutParams(
LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
childParam.weight=1.0f;
setLayoutParams(childParam);
childLayout.setGravity(重力.中心);
childLayout.addView(btn);
mainLayout.addView(子布局);
}
setContentView(主布局);
}
}
如何使每个单元格具有相同的宽度?
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
mainLayout.setLayoutParams(params);
mainLayout.setWeightSum(3);
for (int i = 0; i < 3; i++) {
LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setText("Btn");
btn.setLayoutParams(btnParams);
LinearLayout childLayout = new LinearLayout(this);
LinearLayout.LayoutParams childParam = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
childParam.weight = 1.0f;
childLayout.setLayoutParams(childParam);
childLayout.setGravity(Gravity.CENTER);
childLayout.addView(btn);
mainLayout.addView(childLayout);
}
setContentView(mainLayout);
}
}