ボタンの高さを 30px 未満に設定するには? 私は次を試しました:
- setHeight(30); (セット 150 は機能していますが、セット 30 は機能していません)
- setPadding(0,-20,0,-20); (幅は変わりますが、高さは変わりません)
- LinearLayout.LayoutParams (セット 150 は機能していますが、セット 30 は機能していません)
- new Button(this, null, 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 ドローアブルがあります。高さも合わせてみました。ボタンをテキストのみでラップすることは可能ですか?
編集: この問題は、ボタンの代わりに TextView を使用することで解決されます。もちろん、Button.class で特定の/オーバーライドされたものを使用していない場合。