Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中创建线性布局和中心按钮?_Java_Android_Android Linearlayout - Fatal编程技术网

Java 如何在android中创建线性布局和中心按钮?

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

在android中,如何使用java插入线性布局,在水平布局中有三个按钮,并使按钮居中

所以基本上我想要一个水平的线性布局,有三列和一行,每列都有相同的宽度,并且在每个布局单元中插入一个垂直和水平居中的图像按钮

    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);
}
}