@@ -0,0 +1,1720 @@
+package net.squanchy.support.widget;%0A%0Aimport android.content.Context;%0Aimport android.graphics.Outline;%0Aimport android.util.AttributeSet;%0Aimport android.view.View;%0Aimport android.view.ViewOutlineProvider;%0Aimport android.widget.ImageView;%0A%0Apublic class CircleImageView extends ImageView %7B%0A%0A    public CircleImageView(Context context, AttributeSet attrs) %7B%0A        this(context, attrs, 0);%0A    %7D%0A%0A    public CircleImageView(Context context, AttributeSet attrs, int defStyleAttr) %7B%0A        this(context, attrs, defStyleAttr, 0);%0A    %7D%0A%0A    public CircleImageView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) %7B%0A        super(context, attrs, defStyleAttr, defStyleRes);%0A%0A        super.setOutlineProvider(new CircularOutlineProvider());%0A        super.setClipToOutline(true);%0A    %7D%0A%0A    @Override%0A    public final void setOutlineProvider(ViewOutlineProvider provider) %7B%0A        throw new UnsupportedOperationException(%22Cannot set an outline provider on a CircleImageView%22);%0A    %7D%0A%0A    @Override%0A    public final void setClipToOutline(boolean clipToOutline) %7B%0A        throw new UnsupportedOperationException(%22Cannot set clipping to outline on a CircleImageView%22);%0A    %7D%0A%0A    @Override%0A    protected final void onSizeChanged(int w, int h, int oldw, int oldh) %7B%0A        if (w != h) %7B%0A            throw new IllegalArgumentException(%22The width and height of this view must be identical%22);%0A        %7D%0A        super.onSizeChanged(w, h, oldw, oldh);%0A    %7D%0A%0A    private static final class CircularOutlineProvider extends ViewOutlineProvider %7B%0A%0A        @Override%0A        public void getOutline(View view, Outline outline) %7B%0A            outline.setOval(0, 0, view.getWidth(), view.getHeight());%0A        %7D%0A    %7D%0A%7D%0A

Create CircleImageView