diff --git a/services/core/java/com/android/server/wm/CircularDisplayMask.java b/services/core/java/com/android/server/wm/CircularDisplayMask.java index a7d41faecec47..9fdfc47dfede8 100644 --- a/services/core/java/com/android/server/wm/CircularDisplayMask.java +++ b/services/core/java/com/android/server/wm/CircularDisplayMask.java @@ -24,6 +24,7 @@ import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Point; import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.view.Display; import android.view.Surface; @@ -35,7 +36,6 @@ import android.util.Slog; class CircularDisplayMask { private static final String TAG = "CircularDisplayMask"; - private static final int STROKE_WIDTH = 2; // size of the chin private int mScreenOffset = 0; // Display dimensions @@ -82,9 +82,7 @@ class CircularDisplayMask { mDrawNeeded = true; mPaint = new Paint(); mPaint.setAntiAlias(true); - mPaint.setStyle(Paint.Style.STROKE); - mPaint.setColor(Color.BLACK); - mPaint.setStrokeWidth(STROKE_WIDTH); + mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); mScreenOffset = screenOffset; } @@ -104,7 +102,6 @@ class CircularDisplayMask { if (c == null) { return; } - c.drawColor(Color.TRANSPARENT, PorterDuff.Mode.SRC); switch (mRotation) { case Surface.ROTATION_0: case Surface.ROTATION_90: @@ -122,7 +119,10 @@ class CircularDisplayMask { } int circleRadius = mScreenSize.x / 2; - c.drawCircle(circleRadius, circleRadius, circleRadius, mPaint); + c.drawColor(Color.BLACK); + + // The radius is reduced by 1 to provide an anti aliasing effect on the display edges. + c.drawCircle(circleRadius, circleRadius, circleRadius - 1, mPaint); mSurface.unlockCanvasAndPost(c); }