发生的问题:自定义View使用onDraw方法画出一个矩形填充整个View,然后把控件作为布局的头一个子view显示是没问题,但是如果不是第一个子view,比如在它上面或者左边放一个TextView,自定义的控件是位置是没错,但是控件里面画的图形就会发生移动,有一部分移出自定义view。
自定义view代码 :
public class CircularView extends View {
private Rect mRect;
private Paint mPaint;
public CircularView(Context context) {
super(context);
}
public CircularView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
mRect = new Rect();
}
@Override
protected void onDraw(Canvas canvas) {
Log.i(MainActivity.TAG, "onDraw: " + getTop());
mPaint.setAntiAlias(true);
mPaint.setColor(Color.GREEN);
//矩形填充控件
mRect.left = getLeft();
mRect.top = getTop();
mRect.bottom = getBottom();
mRect.right = getLeft() + getWidth();
canvas.drawRect(mRect, mPaint);
}