Android按钮可绘制不适合文本

问题描述

对于我的应用程序,我想以编程方式将按钮添加到带有背景的linearlayout中,以使其看起来更好。对于背景,我使用了可绘制的。 drawable定义为:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorPrimary" />
    <corners
        android:bottomRightRadius="24dp"
        android:bottomLeftRadius="24dp"
        android:topRightRadius="24dp"
        android:topLeftRadius="24dp"/>
</shape>

该按钮是通过以下方式定义的:

//make new button
Button b = new Button(this);
b.setText(someText);
b.setId(id);
b.setAllCaps(false);
b.setTextColor(getResources().getColor(R.color.textOnButton));
b.setBackground(drawable);
b.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        doAction(v);
    }
});

//setParameters of Linearlayout
LinearLayout linear = findViewById(R.id.linearLayout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.MATCH_PARENT,BUTTON_HEIGHT);
params.setMargins(LEFT_MARGIN_BUTTON,TOP_MARGIN_BUTTON,RIGHT_MARGIN_BUTTON,DOWN_MARGIN_BUTTON);
linear.setOrientation(LinearLayout.VERTICAL);

//add button to linearlayout
linear.addView(b,params);

但是,如果我使用此可绘制背景作为按钮,则它将显示为:

error button

中间的白色烂摊子是一些应显示为以下内容的文本:

correct text button

理想情况下,我想将按钮的高度更改为系统的默认文本大小以及一些边距。有办法解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)