Java代码无法使按钮变宽

Java代码无法使按钮变宽,java,android,Java,Android,我不知道是什么问题。我正在创建一个简单的电话簿,所以我有一个名字的名字,图像和呼叫按钮下的名字。当我尝试使用按钮的layoutParams参数设置宽度时,它不会改变任何东西,btn.setWidth()也不起作用 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onC

我不知道是什么问题。我正在创建一个简单的电话簿,所以我有一个名字的名字,图像和呼叫按钮下的名字。当我尝试使用按钮的
layoutParams
参数设置宽度时,它不会改变任何东西,
btn.setWidth()也不起作用

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    final LinearLayout linear = (LinearLayout)findViewById(R.id.linear);
        LinearLayout.LayoutParams sublparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        LinearLayout.LayoutParams childparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        LinearLayout.LayoutParams imageparams = new LinearLayout.LayoutParams(200, 200);
        linear.setOrientation(LinearLayout.VERTICAL);
        for(int i = 0; i < 10 ; i++){
            LinearLayout sublinear = new LinearLayout(this);
            Button btn = new Button(this);
            ImageView img = new ImageView(this);
            TextView txt = new TextView(this);
            img.setImageResource(R.drawable.img);
            txt.setText("Abonent " + (i+1));
            btn.setBackgroundColor(getColor(R.color.mygreen));
            btn.setText("+3800000");
            txt.setLayoutParams(childparams);
            btn.setLayoutParams(imageparams);
            img.setLayoutParams(imageparams);
            linear.addView(txt);
            sublinear.addView(img);
            sublinear.addView(btn);
            linear.addView(sublinear, sublparams);
        }
    }
}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终线性布局线性=(线性布局)findViewById(R.id.linear);
LinearLayout.LayoutParams子参数=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.WRAP_内容);
LinearLayout.LayoutParams childparams=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容);
LinearLayout.LayoutParams imageparams=新的LinearLayout.LayoutParams(200200);
线性。设置方向(线性布局。垂直);
对于(int i=0;i<10;i++){
LinearLayout sublinear=新的LinearLayout(本);
按钮btn=新按钮(此按钮);
ImageView img=新的ImageView(本);
TextView txt=新的TextView(此);
img.setImageResource(R.drawable.img);
setText(“Abonent”+(i+1));
btn.setBackgroundColor(getColor(R.color.mygreen));
btn.setText(“+3800000”);
txt.setLayoutParams(childparams);
btn.setLayoutParams(imageparams);
img.setLayoutParams(imageparams);
linear.addView(txt);
次线性添加视图(img);
次线性添加视图(btn);
线性。添加视图(次线性,次参数);
}
}
}

您的按钮正在使用
LayoutParams
设置宽度和高度,因此您需要在此处更改此属性(
LinearLayout.LayoutParams(宽度、高度
):

按钮的大小必须更改,因为您正在设置此值

 btn.setLayoutParams(imageparams);

谢谢你,但是我以前做过,不幸的是它不起作用(
 btn.setLayoutParams(imageparams);