For a custom view that draws a rectangle I see the following code in the onDraw
@Override
protected void onDraw(Canvas canvas) {
int left = getPaddingLeft();
int right = getWidth() - getPaddingLeft() - getPaddingRight();
//etc
canvas.drawRect(left, top, right, bottom, paint);
}
Shouldn't right
be:
int right = left + getWidth() + getPaddingRight();
i.e.
int right = getWidth() + left + getPaddingRight();
?
Right is essentially calculating width of the content so it's literally width without both paddings.
Excuse my crude ASCII explanation:
// horizontal views layout. It's total views width
// |--- left padding ---|--- content ---|--- right padding ---|
// |--- left padding ---|
int left = getPaddingLeft();
// |--- content ---|
int right = getWidth() - getPaddingLeft() - getPaddingRight();
// |--- left padding ---|--- content ---|--- right padding ---|
// ^_______________^
// left right
canvas.drawRect(left, top, right, bottom, paint);
What you're suggesting:
int left = getPaddingLeft();
// |--- left padding ---|--- content ---|--- right padding ---|--- left padding ---|--- right padding ---|
int right = getWidth() + left + getPaddingRight();
// |--- left padding ---|--- content ---|--- right padding ---|
// ^_____________________________________________________________________________________________________^
// left right
canvas.drawRect(left, top, right, bottom, paint);