Почему не обрезает бэкграунд в View?

Мне надо чтобы Бэкграунд в View обрезался не был квадратным я попробовал так но это ничего не дало. Правильно ли я вообще делаю?

public class ViewArc extends View {
    Paint p;
    public Path path;

    public ViewArc(Context context) {
        super(context);
        setup();
    }

    public ViewArc(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        setup();
    }

    public ViewArc(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        setup();
    }

    public ViewArc(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        setup();
    }

    void setup() {
        path = new Path();
        p = new Paint();
        p.setStrokeWidth(3);
        p.setColor(Color.BLACK);
        p.setStyle(Paint.Style.STROKE);
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        path.reset();
        int x1 = 0;
        int yv = (int)(getHeight() * 0.885f);
        int y1 = yv - (getHeight() - yv);
        int x2 = getWidth();
        int y2 = getHeight();
        RectF rectf = new RectF(x1, y1, x2, y2);
        path.arcTo(rectf, 0, 180);
        canvas.clipPath(path);
        super.dispatchDraw(canvas);
    }
}

Пример обрезки


Ответы (0 шт):