public override void draw(android.graphics.Canvas canvas) { if (mWindowType != android.view.WindowManagerClass.LayoutParams.TYPE_APPLICATION_PANEL) { // draw() is not called when SKIP_DRAW is set if ((mPrivateFlags & SKIP_DRAW) == 0) { // punch a whole in the view-hierarchy below us canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); } } base.draw(canvas); }
protected internal override void dispatchDraw(android.graphics.Canvas canvas) { if (mWindowType != android.view.WindowManagerClass.LayoutParams.TYPE_APPLICATION_PANEL) { // if SKIP_DRAW is cleared, draw() has already punched a hole if ((mPrivateFlags & SKIP_DRAW) == SKIP_DRAW) { // punch a whole in the view-hierarchy below us canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); } } base.dispatchDraw(canvas); }
internal virtual void drawOutline(android.graphics.Canvas dest, android.graphics.Bitmap src) { int[] xy = mTmpXY; android.graphics.Bitmap mask = src.extractAlpha(mBlurPaint, xy); mMaskCanvas.setBitmap(mask); mMaskCanvas.drawBitmap(src, -xy[0], -xy[1], mErasePaint); dest.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); dest.setMatrix(mIdentityMatrix); dest.drawBitmap(mask, xy[0], xy[1], mHolographicPaint); mMaskCanvas.setBitmap(null); mask.recycle(); }