我想创建一个自定义的EditText类与一个矩形绘制它。我很容易就可以工作。但后来我也希望文字居中,因此我设置了重心=中心。然而,这使得箱子周围的矩形消失。重力属性是否改变边界框?我如何检索正确的边界框?自定义EditText与周围绘制的矩形与重力不兼容
类如下:
public static class LetterBox extends EditText {
private Paint mPaint = new Paint();
public LetterBox(Context context) {
super(context);
this.setupPaint();
}
public LetterBox(Context context, AttributeSet attrs) {
super(context,attrs);
this.setupPaint();
super.setGravity(Gravity.CENTER);
}
public LetterBox(Context context, AttributeSet attrs, int defStyle) {
super(context,attrs,defStyle);
this.setupPaint();
super.setGravity(Gravity.CENTER);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawRect(0,0,getMeasuredWidth()-1,getMeasuredHeight()-1,mPaint);
super.onDraw(canvas);
}
private void setupPaint() {
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.BLACK);
}
}
怎么样this.setGravity(Gravity.CENTER)? – 2014-11-05 21:04:25
谢谢。没有帮助强硬。 – 2014-11-05 21:44:39
你是如何构建Letterbox对象的?用findViewById? – David 2014-11-05 22:11:47