Получите отступы фона в вашем onMeasure, чтобы уменьшить доступную ширину (это для размещения ячеек в сетке):
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Drawable background = getBackground();
Rect padding = new Rect();
if (background != null && background.getPadding(padding));
int width = MeasureSpec.getSize(widthMeasureSpec);
int availableWidth = width - padding.left - padding.right;
А для onLayout применяется отступ:
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int availableWidth = r - l - getPaddingLeft() - getPaddingRight();