public override int getOpacity() { if (mShapeState.mShape == null) { android.graphics.Paint p = mShapeState.mPaint; if (p.getXfermode() == null) { int alpha = p.getAlpha(); if (alpha == 0) { return(android.graphics.PixelFormat.TRANSPARENT); } if (alpha == 255) { return(android.graphics.PixelFormat.OPAQUE); } } } // not sure, so be safe return(android.graphics.PixelFormat.TRANSLUCENT); }
public override void draw(android.graphics.Canvas canvas) { android.graphics.Rect r = getBounds(); android.graphics.Paint paint = mShapeState.mPaint; int prevAlpha = paint.getAlpha(); paint.setAlpha(modulateAlpha(prevAlpha, mShapeState.mAlpha)); if (mShapeState.mShape != null) { // need the save both for the translate, and for the (unknown) Shape int count = canvas.save(); canvas.translate(r.left, r.top); onDraw(mShapeState.mShape, canvas, paint); canvas.restoreToCount(count); } else { canvas.drawRect(r, paint); } // restore paint.setAlpha(prevAlpha); }
public override int getOpacity() { return(mNinePatch.hasAlpha() || (mPaint != null && mPaint.getAlpha() < 255) ? android.graphics.PixelFormat .TRANSLUCENT : android.graphics.PixelFormat.OPAQUE); }