Merge "Improve the circularMask for round displays" into lmp-mr1-dev

This commit is contained in:
Prashant Malani
2015-01-12 18:34:44 +00:00
committed by Android (Google) Code Review

View File

@@ -24,6 +24,7 @@ import android.graphics.Paint;
import android.graphics.PixelFormat; import android.graphics.PixelFormat;
import android.graphics.Point; import android.graphics.Point;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect; import android.graphics.Rect;
import android.view.Display; import android.view.Display;
import android.view.Surface; import android.view.Surface;
@@ -35,7 +36,6 @@ import android.util.Slog;
class CircularDisplayMask { class CircularDisplayMask {
private static final String TAG = "CircularDisplayMask"; private static final String TAG = "CircularDisplayMask";
private static final int STROKE_WIDTH = 2;
// size of the chin // size of the chin
private int mScreenOffset = 0; private int mScreenOffset = 0;
// Display dimensions // Display dimensions
@@ -82,9 +82,7 @@ class CircularDisplayMask {
mDrawNeeded = true; mDrawNeeded = true;
mPaint = new Paint(); mPaint = new Paint();
mPaint.setAntiAlias(true); mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.STROKE); mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(STROKE_WIDTH);
mScreenOffset = screenOffset; mScreenOffset = screenOffset;
} }
@@ -104,7 +102,6 @@ class CircularDisplayMask {
if (c == null) { if (c == null) {
return; return;
} }
c.drawColor(Color.TRANSPARENT, PorterDuff.Mode.SRC);
switch (mRotation) { switch (mRotation) {
case Surface.ROTATION_0: case Surface.ROTATION_0:
case Surface.ROTATION_90: case Surface.ROTATION_90:
@@ -122,7 +119,10 @@ class CircularDisplayMask {
} }
int circleRadius = mScreenSize.x / 2; 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); mSurface.unlockCanvasAndPost(c);
} }