如何设置按钮高度小于 30px?我尝试了下一个:
- 设置高度(30);(第 150 集有效,但第 30 集无效)
- setPadding(0,-20,0,-20); (宽度是变化的,高度是不变的)
- LinearLayout.LayoutParams(设置 150 工作,但设置 30 不工作)
- 新按钮(这个,空,android.R.attr.buttonStyleSmall);- 仅对按钮文本有影响
Button mainButton = new Button(this);
mainButton.setPadding(0, 0, 0, 0);
mainButton.setLayoutParams(new LayoutParams(FlowLayout.LayoutParams.WRAP_CONTENT,FlowLayout.LayoutParams.WRAP_CONTENT));
l.addView(mainButton);
SmallButton mainButton = new SmallButton(this);
mainButton.setText(s);
mainButton.setBackgroundResource(R.drawable.button_drawable);
mainButton.setLayoutParams(new LayoutParams(FlowLayout.LayoutParams.WRAP_CONTENT,FlowLayout.LayoutParams.WRAP_CONTENT));
l.addView(mainButton);
public class SmallButton extends Button {
public SmallButton(Context context) {
super(context);
}
public SmallButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SmallButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec,MeasureSpec.makeMeasureSpec(MeasureSpec.EXACTLY, 35));
}
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
canvas.translate(0,-5);
super.onDraw(canvas);
canvas.restore();
}
}
我的背景有一个带有渐变的 Shape drawable,因为我不知道确切的宽度。我也尝试设置它的高度。是否可以使按钮仅包装文本?
编辑: 使用 TextView 而不是 Button 解决了这个问题。当然,如果您没有使用 Button.class 中的特定/覆盖的东西。