Custom view - clipping does not scale correctly

I'm using a simple scale animation and apply it to a custom view. The problem is, that during animation the clipping messes up, this means, although my view looks correct without scaling through the animation, I can see that the view is scaled correctly but the clipping does not scale as expected.

Result is, that I see a circle with a perfectly clipped image if the view is unscaled and that I see that the image and circle is scaled, while the clipping seems to remain unscaled, so that I start seeing edges of the image outside the circle if I press my custom view and animate it with the animation.

Any ideas how to solve that?

Code

Animation:

<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fillAfter="true"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.9"
    android:toYScale="0.9" >
</scale>

Custom view:

public class IconView extends View {

    // ...

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // view has custom defined sizes!
        widthMeasureSpec = sidebarIconPaddingLeft + sidebarIconPaddingRight + sidebarIconSize;
        heightMeasureSpec = sidebarIconPaddingTop + sidebarIconPaddingBottom + sidebarIconSize + textHeight;
        L.d("onMeasure (w, h) = (%d, %d)", widthMeasureSpec, heightMeasureSpec);
        this.setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 1) Create Clipping
        final Path path = new Path();
        float centerX = (float)sidebarIconPaddingLeft + (float)sidebarIconSize / 2f;
        float centerY = (float)sidebarIconPaddingTop + (float)sidebarIconSize / 2f;
        float radius = (float)sidebarIconSize / 2f;
        path.addCircle(centerX, centerY, radius, Path.Direction.CW);
        canvas.clipPath(path);

        // 2) Draw Icon
        int w = sidebarIconSize;
        int h = sidebarIconSize;
        int xOffset = sidebarIconPaddingLeft;
        int yOffset = sidebarIconPaddingTop;
        Drawable drawable = ...;
        drawable.setBounds(0, 0, w, h);
        drawable.draw(canvas);

        // 3) draw circle
        radius = (float)sidebarIconSize / 2f - mLinePaint.getStrokeWidth() / 2f;
        canvas.drawCircle(centerX, centerY, radius, mLinePaint);
    }
}